尝试使用以下代码输出等效的十进制\n
(换行符)。执行后,我按Enter键,然后按 Ctrl + Z ,但屏幕上没有任何内容。我希望能印出10张。我想念什么?
#include <stdio.h>
int main()
{
char ch;
while ((ch = getchar() != EOF))
{
if (ch == '\n')
{
printf("\\n=%d\n", ch);
}
}
}
答案 0 :(得分:5)
while ((ch = getchar() != EOF))
这会将值getchar() != EOF
分配给ch
。您可能打算写:
while ((ch = getchar()) != EOF)
P.S。 ch
的类型应为int
,因为EOF
是一个负值,不需要char
才能表示(char
可能是{{ 1}}),因此在某些系统上,如果unsigned
(错误地)是ch
(因此在这样的系统上会有无限循环),您可能永远不会看到此条件为false。