Leitura \ r (retorno de carro) vs \ n (nova linha) do console com getc?

Eu estou escrevendo uma função que basicamente aguarda o usuário apertar "enter" e depois faz alguma coisa. O que eu encontrei que funciona quando o teste é o seguinte:

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

A pergunta que tenho e o que tentei de início foi fazer:if (x == '\r') mas nos testes, o programa não me pegou entrando. o'\n' parece corresponder-me a entrar no console. Alguém pode explicar a diferença? Além disso, para verificar, escreva-o comoif... == "\n" significaria o literal da string de caracteres? ou seja, o usuário teria que entrar literalmente"\n" do console, correto?

questionAnswers(4)

yourAnswerToTheQuestion