🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: be.comp.programming
Article #8082

Re: C-vraag ivm while-lus en scanf-return-value (while (scanf(...) == 0)

#8082
From: Luc Kumps
Date: Tue, 09 Jul 2002 08:54
36 lines
2044 bytes
"Sven Vermeulen" <svenPUNTJEvermeulen@rug.ac.be> wrote in message
news:BAwW8.25690$ix.3604@afrodite.telenet-ops.be...
> Ieps,
>
> Ik probeer dmv een lus ervoor te zorgen dat verkeerd ingegeven gegevens
> opgevangen worden en de user te dwingen opnieuw zijn gegevens in te geven.
> Het gaat als volgt:
>
> printf("Number %d: ", looper);
> while (scanf("%d", &input) == 0)
> {
> printf("Error: input is no integer\nPlease try again: ");
> }

Nog even een kleine randopmerking...
Je zou best de return waarde van scanf opslaan in een variabele, want naast
0 en 1 zou ook nog -1 kunnen gegeven worden, bv. bij EOF!
In dat geval behoudt "input" gewoon zijn waarde die het vooraf had...

Dus bv.

int result;
while ((result=scanf("%d", &input)) == 0)
{
  fflush(stdin);
  printf("Error: input is no integer\nPlease try again: ");
}

if (result != 1) {
  printf("stdin is niet leesbaar\n");
  exit(1);
}


Luc K
Technical Details
Message-ID: <cxxW8.25761$ix.3783@afrodite.telenet-ops.be>
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-06!supernews.com!iad-peer.news.verio.net!news.verio.net!skynet.be!skynet.be!ossa.telenet-ops.be!afrodite.telenet-ops.be.POSTED!not-for-mail
References: <BAwW8.25690$ix.3604@afrodite.telenet-ops.be>

Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII-7-bit
X-Google-Thread: fcea4,c06f7d2c1c15dc0a
X-Google-Attributes: gidfcea4,public
X-Google-ArrivalTime: 2002-07-09 01:55:00 PST
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-06!supernews.com!iad-peer.news.verio.net!news.verio.net!skynet.be!skynet.be!ossa.telenet-ops.be!afrodite.telenet-ops.be.POSTED!not-for-mail
From: "Luc Kumps" <NOkumpsSPAM@pandora.be>
Newsgroups: be.comp.programming
References: <BAwW8.25690$ix.3604@afrodite.telenet-ops.be>
Subject: Re: C-vraag ivm while-lus en scanf-return-value (while (scanf(...) == 0)
Lines: 39
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2600.0000
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000
Message-ID: <cxxW8.25761$ix.3783@afrodite.telenet-ops.be>
Date: Tue, 09 Jul 2002 08:54:32 GMT
NNTP-Posting-Host: 213.118.69.141
X-Complaints-To: abuse@telenet.be
X-Trace: afrodite.telenet-ops.be 1026204872 213.118.69.141 (Tue, 09 Jul 2002 10:54:32 MET DST)
NNTP-Posting-Date: Tue, 09 Jul 2002 10:54:32 MET DST
Organization: Telenet Internet