Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Kubas129
Člen
Avatar
Kubas129:24.11.2018 19:42

Proč, když napíšu třeba: Ahoj světe!
Tak proč se cyklus neukončí ale pokračuje dál?? Vždyt přece poslení hodnota má být ta E0F

int main() {
        int znak;
        do {
                znak = getchar();
        } while (znak!= EOF);
        return 0;
}
 
Odpovědět
24.11.2018 19:42
Avatar
Kubas129
Člen
Avatar
Kubas129:24.11.2018 20:17

Jak načtu celý řádek?

 
Nahoru Odpovědět
24.11.2018 20:17
Avatar
DarkCoder
Člen
Avatar
Odpovídá na Kubas129
DarkCoder:24.11.2018 23:03

EOF je makro jehož hodnota je obvykle definovaná jako -1 a indikuje, zda-li došlo na konec souboru. Pro indikaci konce řádku se používá '\n'.

Načtení řádku můžeš provést následovně:

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>

#define MAX 100

int main(void) {
        char text[MAX];
        int pos = 0;

        while (pos < (MAX - 1)) {
                text[pos] = getchar();
                if (text[pos] == '\n') break;
                pos++;
        }
        text[pos] = '\0';

        puts(text);

        return 0;
}

Popřípadě můžeš použít funkci fgets().

fgets(text, sizeof(text), stdin);
Nahoru Odpovědět
24.11.2018 23:03
"I ta nejlepší poučka postrádá na významu, není-li patřičně předána." - DarkCoder
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.