我正在编写一个函数,基本上是等待用户按“Enter”键,然后执行某些操作。我在测试时发现下面的代码可以工作:
#include <stdio.h>
int main()
{
int x = getc(stdin);
if (x == '\n') {
printf("carriage return");
printf("\n");
}
else {
printf("missed it");
printf("\n");
}
}
我有一个问题,一开始尝试的是这样做:if (x == '\r')
,但在测试时,程序没有捕捉到我按回车键。 '\n'
似乎对应于我从控制台敲击回车键。有人能解释一下区别吗?此外,确认一下,将其写成 if... == "\n"
是指字符字符串文字吗?也就是说,用户必须从控制台输入"\n"
,对吗?
strcmp
或类似函数。char *s1, *s2; if (s1 == s2) {...}
只会检查s1
和s2
是否指向同一块内存区域,而不管实际内存内容。 - toriningen\n
在执行字符集中表示什么,以及平台如何序列化换行符,您的应用程序始终会看到\n
作为换行符。 - Kerrek SB