首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

这是为什么呢?输出是咋回事

2012-08-14 
这是为什么呢?输出是怎么回事?[codeC/C++][/code]#include stdio.h#include stdlib.hint sf_sc(void)

这是为什么呢?输出是怎么回事?
[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一个是你输入的字符一个是回车键。
[解决办法]

探讨

因为你输入的时候,是输入一个字符还有一个回车键。所以连续两次getchar一个是你输入的字符一个是回车键。

热点排行