当我准确输入 K&R 中的一些示例时,它们在 Code:Blocks 中不起作用。
例如这个程序:
#include <stdio.h>
main()
{
long nc;
nc = 0;
while (getchar() != EOF)
++nc;
printf("%ld\n", nc);
}
当我键入此代码并运行它时,程序要么冻结,要么在我按 Enter 键时不执行任何操作。
下面的程序做了同样的事情(计算字符串中的字符)并且它有效。
#include <stdio.h>
int main()
{
char s[1000];
int i;
scanf("%s",s);
for(i=0; s[i]!='\0'; ++i);
printf("Length of string: %d",i);
return 0;
}
我在这里错过了什么吗?自 K&R 第二版以来 C 是否已更改,或者我做错了什么?
当你按下回车键时,你发送\n
进入标准输入流(并将其他数据刷新到stdin
,如果有的话)。这个角色(\n
) is not与EOF
。发送EOF
,按以下组合键:
-
CTRL Z and then Enter in Windows.
-
CTRL D in Unix/Linux/OSX
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)