Pliki - pobieranie liczb, obsługa błędu

0

Witam,

Chciałbym wyskoczyć z szybkim pytanie odnośnie pobierania danych z pliku tekstowego. Dane są oddzielone od siebie (liczby). Chcę się dowiedzieć w jaki sposób mogę obsłużyć błąd np:

printf("Blad - to nie liczba");

W momencie kiedy w podanym niżej kodzie napotkam w pliku .txt jakieś znaki inne niż liczby.

Przykład zawartości w pliku tekstowym: 1 2 3 abc

int a;
while(fscanf(fp,"%d",&a)!=EOF)
    {
    	//???????? ( obsługa błędu);
    	printf("To jest liczba");
    }
1

fscanf zwraca liczbę poprawnie wczytanych wartości (lub EOF). Sprawdzaj wartość zwracaną pod tym względem, a nie wyłącznie czy to EOF.

int result = 0;
do {
    result = fscanf(fp, "%d", &a);
    if(a != 1) {
        // error
    }
} while(result != EOF);

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.