wy54072851 发表于 2011-4-30 00:01:33

关于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语句没有被执行。。。
请高手解答下为什么,以及如何才能让用户任意输入而不使程序挂掉?

winddyj 发表于 2011-4-30 02:22:19

printf("12345");
getchar();               //中间加上一句
scanf("%d",&s);

liuyu890 发表于 2011-4-30 15:04:07

scanf("%d",&s); 这句如果碰到用户输入字符的话会自动跳过段代码,搜索后面是否有接收字符的代码,从而形成死循环

狼行绝路 发表于 2011-4-30 22:04:58

neur2520 发表于 2011-5-2 08:21:18

鱼C工作室.YCGZS 发表于 2015-12-14 16:20:21

没有什么的
页: [1]
查看完整版本: 关于scanf函数的一点疑问