Ich schreibe eine Funktion, die im Grunde darauf wartet, dass der Benutzer "Enter" drückt und dann etwas tut. Was ich gefunden habe, das funktioniert bei der Prüfung der unten:Lesen r (Wagenrücklauf) vs n (Newline) von der Konsole mit getc?
#include <stdio.h>
int main()
{
int x = getc(stdin);
if (x == '\n') {
printf("carriage return");
printf("\n");
}
else {
printf("missed it");
printf("\n");
}
}
Die Frage, die ich habe, und was ich versuchte zunächst zu tun war: if (x == '\r')
aber in Tests, hat das Programm fangen mich nicht schlagen ein. Die '\n'
scheint zu entsprechen, dass ich von der Konsole aus trete. Kann jemand den Unterschied erklären? Um zu überprüfen, würde das Schreiben als if... == "\n"
das Zeichenkettenliteral bedeuten? h. der Benutzer müsste wörtlich "\n"
von der Konsole eingeben, richtig?
Verbunden: http://stackoverflow.com/questions/1355095/what-is-the-difference-www.r-and-n – Mysticial
C wendet Escapes sowohl auf Einzel- als auch auf doppelte Anführungszeichen an, also "\ n" ist string zwei Zeichen in der Länge, zuerst ASCII-Code 10 (\ n selbst) und zweitens - ASCII NUL (Null-Terminator). – toriningen
(Ich hoffe, Sie haben nichts gegen die Änderungen am Titel, sie sind da, um es durchsuchbarer zu machen.) –