Mam następujący prosty program do odczytu z pliku tekstowego (num.txt). Plik tekstowy ma numery 1 2 3 4 5 w każdej linii. Po uruchomieniu programu drukuje 5 razy dwa razy. Czy ktoś może mi powiedzieć, dlaczego tak się dzieje i jak to naprawić? z góry dziękifscanf odczytuje ostatnią liczbę całkowitą dwukrotnie
int main(void)
{
int number;
FILE *file;
int i = 0;;
file = fopen("num.txt", "r");
while (!feof(file)){
fscanf(file, "%d", &number);
printf("%d\n", number);
}
return 0;
}
Oto mój tekst plik num.xtx
1
2
3
4
5
A oto wyjścia programu
1
2
3
4
5
5
jest dodatkowa 5
'while (! Feof (plik)) {' :: feof() jest przyczyną problemu – wildplasser
Może Proponuję przeczytać [to] (http://stackoverflow.com/questions/5431941/ while-feof-file-is-always-wrong)? – niklasfi
Jaka jest wartość zwrócona przez fscanf, gdy widzisz ostatnie 5? Założę się, że to nie 1. ;-) –