漠水 发表于 2014-8-29 18:04:01

简单的while问题(为什么一个循环a=a+1执行2次)

本帖最后由 风之残月 于 2014-11-9 22:40 编辑

#include<stdio.h>
#include<conio.h>
void main()
{
int a;
a=0;
char s=0;
while(s!='0')
{
a=a+1;               //为什么一个循环a=a+1执行2次
printf("a=%d\n",a);
scanf("%c",&s);
switch(s)
{ case '1':
   printf("有点烦\n ");
   break;
case '2':
      printf("无聊\n");
      break;
}
}

    }

流行语 发表于 2014-8-29 18:04:02

你在scanf()语句上面加上一行fflush(stdin);就OK了。fflush(stdin);这行代码的意思是清空缓冲区数据。

w94ljj 发表于 2014-8-29 20:50:42

缓存未清空

爆破2014 发表于 2014-8-30 01:14:55

scanf("%c",&s);
getchar();// 用这个函数吃掉 回车 就可以了

你应该是在学C语言吧 你的后缀是不是写成了CPP ?
int a;
a=0;
char s=0;
C语言赋值应在定义后面 或定义时赋值你这样写会报错的

漠水 发表于 2014-8-30 20:28:13

爆破2014 发表于 2014-8-30 01:14
scanf("%c",&s);
getchar();// 用这个函数吃掉 回车 就可以了



谢谢提醒,我现在才开始用vc++,很多地方也是不懂

澎儿 发表于 2014-9-11 20:13:39

来看看了
页: [1]
查看完整版本: 简单的while问题(为什么一个循环a=a+1执行2次)