这是我的代码
#include <stdio.h>
main()
{
int c;
c=getchar();
while(c!=EOF)
{
int x;
x=(c!=EOF);
printf("%d",x);
putchar(c);
c=getchar();
}
}
输出(当我输入A
时):
A
1A1
为什么不只1A
。为什么要重复1
。像第一个一样,程序将从getchar中获取c的值。然后它将进入循环。当condition为true时,它将打印x的值,然后打印c的值。再一次,它应该要求我提供输入。而是显示另一个1,然后要求输入。请帮助。
答案 0 :(得分:9)
这是因为您输入了A
和<enter>
。 <enter>
产生第二个1
。
您可以在Unix上按CTRL
+ D
或在Windows上按CTRL
+ Z
关闭程序的标准输入,而不必按<enter>
。这将为您提供预期的输出。
使用<enter>
:https://ideone.com/lWJ3Xz
答案 1 :(得分:3)
只需最少的调试工作,您就会了解自己。
printf("FEOF=%d, C=0x%x\n",x,c);