Dobrý den,
snažím se učit jazyk C z Heroutovy Učebnice jazyka C. Používám OS Linux (Ubuntu). Jedno z cvičení v knize je napsat funkci void vypis(FILE *fr), která vypíše na obrazovku obsah textového souboru. To by nebyl problém. V další úloze je zdokonalit funkci vypis() tak, aby zajišťovala stránkování po zaplnění obrazovky. A tady jsem narazil. Chtěl bych se zeptat, jak můžu otestovat, že se při výpisu dorazilo na konec obrazovky (konzole, okna terminálu). Napsal jsem to takhle:
void vypis(FILE *fr)
{
int znak = 0,
strana = 0;
while ( (znak = getc(fr)) != EOF) {
if (znak == '\f') {
strana = strana + 1;
printf("\nStrana %d\n", strana);
}
else
putchar(znak);
}
printf("\nPocet stran %d\n", strana);
}
protože jsem se domníval, že escape sekvence \f (form feed) je neviditelný "znak", který odděluje stránky. Ale takhle to asi není. V proměnné strana je pořád nula. Takže ta podmínka by měla vypadat jinak. Jen nevím jak... Poradili byste, prosím ?
(Ještě dodám, že soubor se otevírá a zavírá pro čtení v hlavní funkci (main), kde se taky volá funkce vypis(). Soubor se normálně vypisuje, v tom není problém.)
Moc děkuju za pomoc !