这是为什么呢?输出是怎么回事?
[code=C/C++][/code]
#include <stdio.h>
#include <stdlib.h>
int sf_sc(void);
int main(int argc, char *argv[])
{
int x,sum,count;
sum=0;
count=0;
do
{
printf("请输入一个正整数:\n");
scanf("%d",&x);
count++;
sum+=x;
}
while (sf_sc()==0) ;
printf("%d\t",sum);
system("PAUSE");
return 0;
}
int sf_sc(void)
{
printf("是否输出?(y或者Y输出,其他继续)\n");
return (getchar()=='y'||getchar()=='Y')?1:0;
}
这时候输出是这样的 :输入一个正整数:
12(输入的值)
是否输出(y或者Y输出,其他继续)://单独出一句
Y(输入的值)
12 请按任意键继续。。。
但是当把||getchar()=='Y'去掉之后 输出却是这样的:输入一个正整数:
12(输入的值)
是否输出(y或者Y输出,其他继续):
输入一个正整数://一次出来2句
y(输入的值)
12 请按任意键继续。。。
困惑不解 不知道有何联系 求高手解答,谢谢
[解决办法]
因为你输入的时候,是输入一个字符还有一个回车键。所以连续两次getchar一个是你输入的字符一个是回车键。
[解决办法]