🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.os.linux.programacion
Article #13141

Re: scanf

#13141
From: Adrian Rossiter
Date: Mon, 19 Mar 2001 11:41
37 lines
2115 bytes
On Sun, 18 Mar 2001 01:24:04 +0000, �ngel Su�rez Rivero wrote:
>>     �ngel> ------------------------------ #include<stdio.h>
>>     �ngel> int main(void) { auto int f;
>>     �ngel>   while(scanf(" %d",&f)!=1) perror("MAL\n"); /*..........*/
>>     �ngel>   return 0; } -------------------------------
...
>Totalmente de acuerdo pero como estoy utilizando "while" deber�a de
>volver a escanear una nueva cifra hasta que scanf devuelva 1 cosa que no
>hace.

Si scanf espera un numero, dejar� en stdin el primer car�cter que
encuentra que no sea parte de un numero.

En el bucle, si el primer car�cter en stdin es, por ejemplo, una 'a'
scanf la dejar� en stdin. La pr�xima vez por el bucle estar� all� para
scanf otra vez y as� el bucle no terminar�.

Para solucionar esto podr�as intentar con algo como.

#include <stdio.h>
int main() {
   int f; char s[100];
   while(fgets(s, 100, stdin)) {
      if(sscanf(s, "%d", &f) == 1)
         break;
      else
         fprintf(stderr, "MAL\n");
   }
}                                            

Saludos

Adrian.
-- 

Adrian Rossiter   -   adrian_r@teleline.es
http://teleline.terra.es/personal/adrian_r
Technical Details
Message-ID: <slrn9bbs2d.u1.adrianr@localhost.adrian_r>
Path: arc1-ca.pugleaf.net!supernews.google.com!sn-xit-03!supernews.com!logbridge.uoregon.edu!news.rediris.es!newsfeed.mad.ttd.net!news.mad.ttd.net!adrianr
References: <3AB2A42F.8C677F1A@teleline.es> <87bsr0btai.fsf@relativistic.homeip.net> <3AB40E34.2E6C1244@teleline.es>

Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII
X-Google-Thread: f86c8,fc6083ac2f27fd47
X-Google-Attributes: gidf86c8,public
X-Google-ArrivalTime: 2001-03-19 04:00:09 PST
Path: arc1-ca.pugleaf.net!supernews.google.com!sn-xit-03!supernews.com!logbridge.uoregon.edu!news.rediris.es!newsfeed.mad.ttd.net!news.mad.ttd.net!adrianr
From: adrianr@jazzfree.com (Adrian Rossiter)
Newsgroups: es.comp.os.linux.programacion
Subject: Re: scanf
Date: Mon, 19 Mar 2001 11:41:03 +0000
Organization: Telefonica Transmision de Datos
Lines: 39
Message-ID: <slrn9bbs2d.u1.adrianr@localhost.adrian_r>
References: <3AB2A42F.8C677F1A@teleline.es> <87bsr0btai.fsf@relativistic.homeip.net> <3AB40E34.2E6C1244@teleline.es>
Reply-To: adrian_r@teleline.es
NNTP-Posting-Host: 213-99-92-219.uc.nombres.ttd.es
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
User-Agent: slrn/0.9.6.2 (Linux)