-2

这是代码:

char ch;
ch = getchar() ;

如果我只按 Enter 而不输入任何其他字符,输入会是什么?如果可能解释为什么?

编辑:

我知道它输入了一个换行符,但我想知道为什么当我按'a'时输入'\n'它输入'a'?如果有任何列表显示 ENTER、SPACE.TAB 等的输入。

4

2 回答 2

3

你会得到换行符 - '\n'

于 2012-09-19T14:56:09.353 回答
1

我可以假设您熟悉ASCII吗?

这就是你得到的。getchar()为您输入的任何字符返回一个整数 (ASCII) 值。例如,如果您有以下代码:

void main()
{
    char ch;
    while(1){
      ch = getchar();
      printf("%c, %#x\n",ch,(int)ch);
    }
    return;
}

您可以输入说“4”并看到它表示为 4, 0x34 (integer representation of '4')

同样,这将适用于 \n 或 \t 或任何其他人。如果你输入 \t 你会看到: , 0x9

该字符是一个选项卡,因此您不会看到它出现,但getchar()确实抓住了该选项卡,您可以看到它是 0x9,正如我们所期望的那样。这有帮助吗?我不确定这是否是您要寻找的答案。

于 2012-09-19T15:47:01.643 回答