getchar, Programm endet



  • Hallo.

    Das Programm soll die Leertasten, Tabs und "newlines" zählen und beim Eingeben der Zahl "0" ausgeben, wie viele von denen gezählt wurden. Damit das Programm nicht sofort beendet wird beim Tätigen der Enter-Taste steht ein getchar() am Ende. Jedoch wird das Programm trotz des getchar() sofort beendet, wenn ich Enter drücke. Erst wenn ich die Funktion getchar() zwei Mal hintereinander benutze hält das Programm kurz inne. Woran liegt das?

    #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
        char c;
        int b = 0;
        int t = 0;
        int n = 0;
        while((c = getchar()) != '0') {
            if(c == ' ') b++;
            if(c == '\t') t++;
            if(c == '\n') n++;
        }
    
        printf("Blanks: %d\nTabs: %d\nNewlines: %d\n", b, t, n);
        getchar();
    
        return 0;
    }
    

    Danke für jede Hilfe.


  • Mod

    Vermutlich hast du die Eingabe der '0' mit einem Zeilenumbruch abgeschlossen (das ist die übliche Art und Weise). Dieser wird dann sofort vom getchar gefunden und gelesen.



  • Noch etwas anderes:

    c sollte auch ein int sein.
    (während sich für b, t und n ein unsigned anbietet)



  • Danke an euch beide.


Anmelden zum Antworten