while ((c = getchar ())! = EOF) Wird nicht beendet

Ich habe "Die Programmiersprache C" gelesen und bin zu diesem Teil der Ein- und Ausgänge gekommen.

Ich habe andere Threads gelesen, die besagen, dass die Konsole Eingaben nicht als erkenntEOF. Damit sollte ich nutzenSTRG + Z in Windows oderSTRG + D in Unix (keine davon funktioniert für mich).

Ich habe auch andere Leute gelesen, die dasselbe fragten und sagten, sie könnten es zum Laufen bringen. Das Problem in ihren Codes war die Syntax, nicht, dass das Programm nicht beendet wurde.

Gibt es eine andere Lösung?

Dies ist der Code:

#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);
}

Bearbeiten: Die\n sollte ein EOF sein, ich habe rumgespielt, bevor ich gepostet habe und ich habe vergessen, dass ich es geändert habe: P

Es funktioniert auch nicht mit EOF, ich habe es nur übersprungen.

Antworten auf die Frage(8)

Ihre Antwort auf die Frage