[问题求助]fflush(stdin)的用法?
还有fflush(stdin),我听人说好像是清空输入的一个变量的缓存空间,好再往里面赋值! 为什么下面这个程序不用呢?getchar不是只接一个字符吗?那它里面的值不用清吗? 和第二个求阶乘的和的程序中用fflush(stdin)有什么区别? 程序一: #include"stdio.h" main() { char i; int zm=0,kg=0,sz=0,qt=0; while((i=getchar())!=‘\n‘) { if((i>=‘A‘&&i<=‘Z‘)||(i>=‘a‘&&i<=‘z‘)) { zm++; } else if(i==‘ ‘) { kg++; } else if(i>=‘0‘&&i<=‘9‘) { sz++; } else { qt++; } } printf("字母有%d个\n空格有%d个\n数字有%d个\n其它有%d个\n",zm,kg,sz,qt); } 程序二: #include "stdio.h" main() { int i,sum,count; char y; y=‘y‘; do { sum=1;count=0; printf("请输入:"); scanf("%d",&i); fflush(stdin); while(i>0) { sum*=i; i--; count++; } printf("%d!=%d\n",count,sum); printf("是否要输入更多:Y/N?\n"); scanf("%c",&y); }while(y==‘y‘||y==‘Y‘); }
|
|
来自: skywood > 《programming》