Article View: be.comp.programming
Article #8081Re: C-vraag ivm while-lus en scanf-return-value (while (scanf(...) == 0)
From: Luc Kumps
Date: Tue, 09 Jul 2002 08:42
Date: Tue, 09 Jul 2002 08:42
43 lines
2382 bytes
2382 bytes
scanf() laat de 'slechte' characters in de input stream zitten. Om die eruit
te halen kun je bv. fflush gebruiken, als volgt:
while (scanf("%d", &input) == 0)
{
fflush(stdin);
printf("Error: input is no integer\nPlease try again: ");
}
Luc K
"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: ");
> }
>
> Jammergenoeg vangt m'n compiler (gcc) dit niet op zoals ik hoopte:
>
> Number 1: a
> Error: input is no integer
> Please try again: Error: input is no integer
> Please try again: Error: input is no integer
> Please try again: Error: input is no integer
> Please try again: Error: input is no integer
> Please try again: Error: input is no integer
> [...]
>
> Ik veronderstel dat die while-lus de "oude" returnvalue gewoon neemt en
dus
> niet de expressie 'scanf("%d", &input) == 0' opnieuw uitvoert. Hoe moet ik
> dit anders doen?
>
> Mvg,
> Sven Vermeulen
Technical Details
Message-ID:
<IlxW8.25747$ix.3906@afrodite.telenet-ops.be>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-03!sn-xit-05!sn-xit-06!supernews.com!nntp.cs.ubc.ca!skynet.be!skynet.be!ossa.telenet-ops.be!afrodite.telenet-ops.be.POSTED!not-for-mailReferences:
<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:46:02 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-03!sn-xit-05!sn-xit-06!supernews.com!nntp.cs.ubc.ca!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: 45 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: <IlxW8.25747$ix.3906@afrodite.telenet-ops.be> Date: Tue, 09 Jul 2002 08:42:16 GMT NNTP-Posting-Host: 213.118.69.141 X-Complaints-To: abuse@telenet.be X-Trace: afrodite.telenet-ops.be 1026204136 213.118.69.141 (Tue, 09 Jul 2002 10:42:16 MET DST) NNTP-Posting-Date: Tue, 09 Jul 2002 10:42:16 MET DST Organization: Telenet Internet