Der folgende Code sollte zuerst "Geben Sie einen Brief ein:". Sobald Enter gedrückt wird, sollte die Ausgabe zeigen "Sie eingegeben: <achar>.
"C getchar() funktioniert ordnungsgemäß im Terminal, aber nicht CLion
Ich benutze Jet Brains IDE, CLion. Gestern funktionierte der Code wie oben beschrieben. Heute jedoch, wenn ich den Code ausführe, bekomme ich eine Leerzeile. Wenn ein Schlüssel durch Eingabe gefolgt gedrückt wird, bekomme ich die Ausgabe:
Letter: You typed: <achar>
Wenn ich jedoch eine \ setzen n nach „Geben Sie einen Brief:“, die prompt zeigt aber gibt die gedrückte Taste auf der nächsten Zeile wegen der \ n.
Ich habe den genauen Code in eine .c-Datei kopiert, kompiliert und im Terminal ausgeführt, und es wird wie erwartet ausgeführt.
#include <stdio.h>
int main() {
int c;
printf("Type a letter: "); // works if \n used, but jumps to next line when key pressed
c = getchar();
printf("You typed: %c\n", c);
return (0);
}
Das hat funktioniert. Aber warum? Ich nehme an, dass flush den belegten Speicher löscht. Aber warum gibt es im Terminal kein Problem? Setzen Sie dies als eine Antwort mit einer Erklärung, wenn Sie können, und ich werde es als beantwortet markieren. Vielen Dank! – dbconfession