Leyendo \ r (retorno de carro) vs \ n (nueva línea) desde la consola con getc?

Estoy escribiendo una función que básicamente espera que el usuario presione "enter" y luego haga algo. Lo que he encontrado que funciona cuando se prueba es el siguiente:

<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>

La pregunta que tengo y lo que intenté al principio fue hacer:if (x == '\r') Pero en las pruebas, el programa no me atrapó pulsando enter. los'\n' Parece corresponder a mi golpeando entrar desde la consola. ¿Alguien puede explicar la diferencia? Además, para verificar, escribirlo comoif... == "\n" ¿Significaría la cadena de caracteres literal? es decir, el usuario literalmente tendría que entrar"\n" desde la consola, correcto?

Respuestas a la pregunta(4)

Su respuesta a la pregunta