getchar/putchar



  • Hallo Zusammen,

    habe gerade dieses Beispiel aus dem Buch Programmieren in C (von Kernighan) ausprobiert:

    #include <stdio.h>
    void main(void)
    { 
    	int c;
    	while((c=getchar())!=EOF)
    		putchar(c);
    }
    

    nach dem Buch wenn EOF erricht ist, wird die main beendet, was völlig in Ordnung ist. Das Programm scheint aber nach Ausführung endlos zu sein und kann es mir nicht
    erklären wieso.
    Hat jemand vielleicht eine Idee?
    danke schön



  • 1. main muss int sein
    2. du gibst wahrscheinlich nie EOF ein, das macht man mit Strg+D



  • supertux schrieb:

    2. du gibst wahrscheinlich nie EOF ein, das macht man mit Strg+D

    Da passiert bei mir nix.



  • ich habe es gerade ausprobiert und es funkitioniert nicht weder mit Strg+D noch Strg+Z aber mit anderen Zeichen wie 'q' geht's



  • myouness27 schrieb:

    ich habe es gerade ausprobiert und es funkitioniert nicht weder mit Strg+D noch Strg+Z aber mit anderen Zeichen wie 'q' geht's

    Das ist gar nicht so schlimm.
    Wichtig ist, daß vom Betriebsystem EOF ankommt, wenn eine Datei zu Ende ist, die nicht die Standard-Eingabe ist.
    Benutzereingaben macht man selten mit getchar(), und außerdem ist es auf Terminals meistens zeilen-gepuffert.
    Wie man EOF eingibt, hängt vom Betriebssystem ab. Welches denn?


Anmelden zum Antworten