关于scanf函数的一点疑问
本帖最后由 wy54072851 于 2011-5-2 13:48 编辑最近在研究动态链表,题是做出来了,但只能完全正确的输入才能正确运行,而现实是用户不可能这样做,于是我就想用条件限制用户输入非指定数时做空运行再接受输入,这时出现了个问题。。。如下:
int s;
scanf("%d",&s);
while(s && s != EOF)
{
printf("12345");
scanf("%d",&s);
}
//这样的话如果我输入A,屏幕就不执行scanf语句而无限刷新12345。。。
scanf("%d",&s);
if (s > n || s < EOF)
{
s = n++; //n 为功能数,如有3个功能n就为3
}
while(s &&s != EOF)
{
printf("12345");
scanf("%d",&s);
}
//这样的话我输入A,while语句没有被执行。。。
请高手解答下为什么,以及如何才能让用户任意输入而不使程序挂掉? printf("12345");
getchar(); //中间加上一句
scanf("%d",&s); scanf("%d",&s); 这句如果碰到用户输入字符的话会自动跳过段代码,搜索后面是否有接收字符的代码,从而形成死循环 没有什么的
页:
[1]