在用使用循环的过程中,我发现输入值对于字母的输入很难判断并给予合适的返回
比如下面的代码(虽然进行了一定程度的改进),允许一次误触,但之后再输入字母还是会死循环,最后强制退出
我尝试了清空缓存区,但效果不大(难道是我的姿势不对?)
希望有好心的大佬看到以后指点一下【狗头】
#include<stdlib.h> #include<stdio.h> int main() { const int num=10; //必须是常量,否则报错 int x,i=0; int count[num]; //定义的常量在这使用 //定义数组 for(int i=0;i<num;i++) { count[i]=0; //初始化数组 } printf("###误触字母一次可以,别瞎敲谢谢###\n"); printf("请输入:"); scanf("%d",&x); while(x!=-1) { if(x>=0 && x<=9) { count[x]++; printf("请输入:"); scanf("%d",&x); } else { fflush(stdin); //对输入流进行清空缓存区,这样就能输入字母后再次返回 printf("请重新输入:"); scanf("%d",&x); } fflush(stdin); //这里再清空一次 int x=NULL; } for(i=0;i<num;i++) printf("%d:%d\n",i,count[i]); system("pause"); return 0; }