C/fgets
Wygląd
< C
Deklaracja
[edytuj]- char *fgets(char *str, int size, FILE *stream);
Plik nagłówkowy
[edytuj]Opis
[edytuj]- Funkcja fgets() czyta kolejne znaki ze strumienia stream i umieszcza je w tablicy znakowej wskazywanej przez str. Czytanie przerywa, gdy przeczyta size - 1 znaków, natrafi na koniec pliku lub znak końca linii (znak ten jest zapisywany do str). Na końcu fgets() dopisuje znak '\0'.
Wartość zwracana
[edytuj]- Wartością funkcji fgets(str, size, stream) jest str w przypadku sukcesu. W przypadku błędu lub natrafienia na koniec pliku przed przeczytaniem jakiegokolwiek znaku wartością funkcji jest NULL.
Uwagi
[edytuj]- Funkcja fgets() nie odróżnia sytuacji osiągnięcia końca pliku od błędu odczytu pliku. Jeśli potrzebne jest ich rozróżnienie użyj funkcji feof() lub ferror().
Przykład użycia
[edytuj]#include <stdio.h>
int main()
{
int i;
const int max_n= 50;
const int linie= 2;
char napis[max_n], *result;
for (i = 1; i <= linie; ++i)
{
result = fgets (napis, max_n, stdin); // czytamy ze standardowego wejścia
if (result != NULL)
{
printf ("%d %s", i, napis);
if (feof (stdin))
printf ("\n%d koniec pliku\n", i);
}
else
printf ("\n%d blad odczytu\n", i);
}
return 0;
}
Program wczytuje 2 linie i, w przypadku wystąpienia, sygnalizuje koniec pliku lub błąd odczytu.
- uruchomiony dla swego tekstu źródłowego daje w wyniku:
1 #include <stdio.h> 2
- uruchomiony dla pliku:
Ala ma kota. Ola ma psa.<znak nowej linii><koniec pliku>
- da w wyniku:
1 Ala ma kota. 2 Ola ma psa.
- po uruchomieniu go dla pliku:
Ala ma kota. Ola ma psa.<koniec pliku>
- otrzymujemy:
1 Ala ma kota. 2 Ola ma psa. 2 koniec pliku
- w przypadku pliku:
Ala ma kota.<znak nowej linii><koniec pliku>
- otrzymujemy:
1 Ala ma kota. 2 blad odczytu
- natomiast dla pliku:
Ala ma kota.<koniec pliku>
- otrzymujemy:
1 Ala ma kota. 1 koniec pliku 2 blad odczytu