C语言 scanf

来源:百度知道 编辑:UC知道 时间:2024/06/04 16:37:32
int i,key=1;
while(key)
{ printf("\n\t\t欢迎使用");

printf("您需要哪项操作?\n");
scanf("%d",&i);

switch(i)
{case 1: inquire(); break;
case 2: manage(); break;
case 0:key=0; break;
default: printf("输入错误\n");
}

}

程序其他的部分就没有列出来了 肯定是没有问题的 问题是 我这里有个选择 是1 2 0 意思就是如果输入其他的 就会报错误 返回重新输入 输入1或2 就调用别的函数。 如果我输入3 4 8 9啊 这些 都能输出 输入错误 但是为什么我输入d f 这些字符的时候 它就会不停的运行 不停的输出 欢迎使用 您需要哪项操作 和输入错误 然后就无限的这样下去了。

于是我就想把 i 改成 char型的 char i;然后scanf("%c",&i);
case'1':case '2': 这样在选择时 输入d f 这样的就不无限输出了
但是每次输入错误(就是不是1或2或0)时 它会输出两遍输入错误 才重新让我选择
于是我在第二次的那个基础上 把scanf("%s",&i); 就成功了
……
我晕了 高手解答啊