Lese \ r (Wagenrücklauf) vs \ n (Zeilenvorschub) von Konsole mit getc?

Ich schreibe eine Funktion, die im Grunde darauf wartet, dass der Benutzer "Enter" drückt und dann etwas unternimmt. Was ich beim Testen als funktionierend empfunden habe, ist das Folgende:

<code>#include <stdio.h>

int main()
{
        int x = getc(stdin);
        if (x == '\n') {
                printf("carriage return");
                printf("\n");
        }
        else {
                printf("missed it");
                printf("\n");
        }
}
</code>

Die Frage, die ich habe und was ich zuerst versucht habe, war zu tun:if (x == '\r') Aber beim Testen hat mich das Programm nicht beim Eingeben erwischt. Das'\n' Scheint mir zu entsprechen, wenn ich von der Konsole aus eingebe. Kann jemand den Unterschied erklären? Auch um zu überprüfen, schreiben Sie es alsif... == "\n" würde das Zeichenkettenliteral bedeuten? der Benutzer müsste buchstäblich eingeben"\n" von der Konsole aus, richtig?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage