尝试\n
用下面的代码打印出十进制等值(换行符).当它执行时我按下回车键Ctrl+ + Z但屏幕上没有打印任何内容.我希望打印10张.我错过了什么?
#include <stdio.h>
int main()
{
char ch;
while ((ch = getchar() != EOF))
{
if (ch == '\n')
{
printf("\\n=%d\n", ch);
}
}
}
Run Code Online (Sandbox Code Playgroud)
while ((ch = getchar() != EOF))
Run Code Online (Sandbox Code Playgroud)
这将值赋值getchar() != EOF
给ch
.你可能想写:
while ((ch = getchar()) != EOF)
Run Code Online (Sandbox Code Playgroud)
PS ch
应该是类型int
,因为EOF
是一个负值,char
不需要能够表示(char
可能是unsigned
),因此在某些系统上,如果ch
(错误地),您可能永远不会看到此条件评估为false char
(因此您将拥有这种系统上的无限循环).