这是我的代码
#include <stdio.h>
main()
{
int c;
c=getchar();
while(c!=EOF)
{
int x;
x=(c!=EOF);
printf("%d",x);
putchar(c);
c=getchar();
}
}
Run Code Online (Sandbox Code Playgroud)
输出(当我输入时A):
A
1A1
Run Code Online (Sandbox Code Playgroud)
为什么1A不仅如此。为什么要重复1。像第一个一样,程序将从getchar中获取c的值。然后它将进入循环。当condition为true时,它将打印x的值,然后打印c的值。再一次,它应该要求我提供输入。而是显示另一个1,然后要求输入。请帮助。
这是因为您输入A和<enter>。所述<enter>产生第二1。
您可以按CTRL+ DUNIX或CTRL+ Z在Windows关闭程序的标准输入,而不是压制<enter>。这将为您提供预期的输出。
使用<enter>:https : //ideone.com/lWJ3Xz
和没有:https : //ideone.com/QsXiYz