C/fgets
Z Wikibooks, biblioteki wolnych podręczników.
< C
Spis treści |
[edytuj] Deklaracja
- char *fgets(char *str, int size, FILE *stream);
[edytuj] Plik nagłówkowy
[edytuj] Opis
- Funkcja fgets() czyta kolejne znaki ze strumienia stream (usuwa je stamtąd) 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'.
[edytuj] Wartość zwracana
- 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.
[edytuj] Uwagi
- 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().
[edytuj] Przykład użycia
- Poniższy program
#include <stdio.h>
int main (void)
{
int i;
char napis[50], *n;
for (i = 0; i < 2; ++i)
{
n = fgets (napis, 15, stdin); /* czytamy ze standardowego wejścia */
if (n != NULL)
{
printf ("%s", napis);
if (feof (stdin))
printf ("\nkoniec pliku\n");
}
else
printf ("blad odczytu\n");
}
return 0;
}
- uruchomiony dla swego tekstu źródłowego daje w wyniku:
#include<stdio.h>
- uruchomiony dla pliku:
Ala ma kota. Ola ma psa.<znak nowej linii><koniec pliku>
- da w wyniku:
Ala ma kota. Ola ma psa.
- po uruchomieniu go dla pliku:
Ala ma kota. Ola ma psa.<koniec pliku>
- otrzymujemy:
Ala ma kota. Ola ma psa. koniec pliku
- dla pliku:
Ala ma kota.<znak nowej linii><koniec pliku>
- otrzymujemy:
Ala ma kota. blad odczytu
- natomiast dla pliku:
Ala ma kota.<koniec pliku>
- otrzymujemy:
Ala ma kota. koniec pliku blad odczytu