while ((c = getchar ())! = EOF) Nie kończąc

Czytałem „The C Programming Language” i dotarłem do tej części wejść i wyjść.

Przeczytałem inne wątki mówiące, że konsola nie rozpoznaje wpisu jakoEOF. Więc powinienem użyćCTRL + Z w systemie Windows lubCTRL + D w Uniksie (żaden z nich nie działa dla mnie).

Czytam też innych ludzi, którzy pytają tego samego, mówiąc, że mogą sprawić, że to zadziała, problem w ich kodach był składnią, a nie zakończeniem programu.

Czy jest inne rozwiązanie?

To jest kod:

#include <stdio.h>
main()
{
    int nb, nl, nt, c;
    nb = 0;
    nl = 0;
    nt = 0;
    while ((c = getchar()) != '\n'){
        if (c == ' ')
            ++nb;
        else if (c == '\n')
            ++nl;
        else if (c == '\t')
            ++nt;
    }
    printf("Input has %d blanks, %d tabs, and %d newlines\n", nb, nt, nl);
}

Edytuj: The\n miał być EOF, bałaganiłam przed wysłaniem i zapomniałam, że to zmieniłam: P

Ani nie działa z EOF, tylko pominąłem ten.

questionAnswers(8)

yourAnswerToTheQuestion