C语言 新手问题 求大神相助
#include <stdio.h>
int getValue (int a)
{
int result=1;
for(int i=1;i<=a;i++)
result=result*i;
return result;
}
int main(void)
{
int a;
char c;
//scanf("%d ",&a);
//scanf("%c",&c);
//printf("%d,%c",a,c);
do{
printf("Please input the number of what you want : \n");
scanf("%d",&a);
printf("the result of %d ! is %d\n",a,getValue(a));
printf("continue?:('y' or 'n')\n");
//fflush(stdin);
scanf("%c",&c);
}while(c!='n');
return 0;
}
不用fflush,不能实现我的目的。就是按y,就可以继续,结果不行,我不知道怎么回事。有个同学给我说缓冲区的问题,我不是很明白。
[解决办法]
将
scanf("%c",&c);
改为
scanf(" %c",&c);
也就是格式字符串前加个空格。
空格在scanf中表示 忽略空白字符
BTW:printf/scanf这种C/C++最常用的函数都不会,还搞个毛呀?
[解决办法]
scanf(" %c",&c); //%c前加空格就可以解决问题
否则此时读入的是你敲完数字后的回车,debug一下就可以看出来!