Cześć, mam problem z zadaniem z języka C. Czemu w poniższej funkcji funkcja fgets pobiera więcej niż 19 znaków? Jak działa ten program? Z góry dzięki :)
Plik tekstowy „tekst.txt” zawiera następujące dane (cztery wiersze i wiersz pusty jako piąty):
komputer
Lublin
biurko
widowisko
Funkcja f zdefiniowana została następująco:
void f(char *str){
static int x = 0;
x += strlen(str)-1;
printf("%d\n", x);
}
Podaj wartości, które wyświetlą się na ekranie po wykonaniu następującego fragmentu programu. Zachowaj format wydruku. Zakładamy, że plik jest otwartym strumieniem plikowym w trybie do odczytu pliku „tekst.txt”. Przyjąć, że podczas wykonywania operacji na plikach nie wystąpią żadne błędy, a potrzebne pliki nagłówkowe są dołączone do programu.
char tab[20];
while(fgets(tab, 19, plik)!= NULL){
if (tab[0] < 'p')
f(tab);
fputs(tab, stdout);
}