Heute habe ich einen einfachen Code geschrieben, der getchar()
verwendet, um die eingegebenen Zeichen zu zählen. Aber wenn ich es auf Cygwin kompiliere, funktioniert es nicht. Es druckt immer 0, aber ich gebe nie etwas ein oder ich kann keine Zeichen eingeben, die 0 drucken.
Wenn ich es jedoch mit VC ++ 6.0 kompiliere, funktioniert es.
%Vor%In diesem E-Mail-Thread geht es um einen Fehler, der ähnlich klingt wie deins, aber ich kann ' Ich sehe, dass es irgendwelche Folgemaßnahmen gibt.
Ich würde gerne wissen, was passiert ist, wenn Sie es versuchen
while(getc(stdin) != EOF)
und wenn das nicht funktioniert, versuche es
while(fgetc(stdin) != EOF)
Alle sollten funktionieren , obwohl dies Seite schlägt vor, dass es Implementierungsunterschiede zwischen diesen Funktionen geben könnte.
Eine andere Sache, die Sie versuchen könnten, ist, den ASCII-Wert dessen zu drucken, was Sie erhalten:
printf("%d\n",(int)getchar());
Versuchen Sie auch, eine Ausgabe aus einer Datei auszugeben, anstatt sie in der Konsole einzugeben. Erstellen Sie eine Datei input.txt
, fügen Sie einige Zeichen ein und machen Sie
cat input.txt | ./program
EDIT: Du schreibst laufende Katze und Piping funktioniert. Ich würde sagen, aktualisieren Sie einfach Ihre Cygwin-Version. Sie haben einen Fehler festgestellt. Holen Sie sich die neuesten Versionen von Cygwin und den Compiler, und Sie sollten gut gehen. Eine andere Möglichkeit ist scanf .