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