Offtopic: DProblem se scanf

Petr Novotny Petr.Novotny na antek.cz
Úterý Březen 30 18:09:51 CEST 1999


> Mam takovy maly programek:
> 
> #include <stdio.h>
> 
> main(){
>  int i;

Arrgh! A co takhle i inicializovat?

>  while(i != 0 ){
>   scanf("%d",&i);
>   printf("Zadals cislo: %d \n",i);
>  }
> }
> 
> Funguje spravne, az do chvile, kdy zadam na vstup pismenko. Potom se
> zacykli ... Zda se,  ze scanf se v dalsi iteraci vubec neprovede.
> 
> Muzete mi nekdo rict proc ? Popripade co s tim ?

AFAIK, scanf to pismeno ze stdin vubec nenacte. Pri kazdem dalsim 
volani to vidi furt to same pismenko.

Reseni:
1. Testovat navratovou hodnotu scanf, je-li nula, cist znaky dokud to 
neni cislo (posledni vratit ungetc)
2. Nacist celou radku ze vstupu (pozor na buffer overflow!) a pouzit 
atoi ci strtol/strtoul.
--
Petr Novotny, ANTEK CS
Petr.Novotny na antek.cz
http://www.antek.cz
-- Don't you know there ain't no devil there's just God when he's drunk.
                                                             [Tom Waits]


Další informace o konferenci Linux