标题:C程序清单9.10 求解惑。谢谢了!
取消只看楼主
wangjiayou
Rank: 1
等 级:新手上路
帖 子:57
专家分:0
注 册:2017-6-25
结帖率:75%
 问题点数:0 回复次数:3 
C程序清单9.10 求解惑。谢谢了!
子函数代码如下:   当我输入英文字母的时候(比如说j),程序无限循环。 这是为什么?  我知道定义的是整型的,不该输入j。书上程序那有处理非整型的,不明白呀。求老司机解惑!  

int menu(void)
{
    int code, status;
    printf("\n%s%s\n",STARS,STARS);
    printf("Enter the number of the desired hotel:\n");
    printf("1.Faire Arms                     2.Hotel Olympic\n");
    printf("3.Chertworthy                    4.The Stock\n");
    printf("5.quit\n");
    printf("%s%s\n",STARS,STARS);
    while((status=scanf("%d",&code)!=1)||(code<1||code>5))                  //当输入的不是数字,或者输入的是数字在范围之外///
    {
        if(status!=1)
            scanf("%*s");          //处理非整型输入///
        printf("Enter an integer from 1 to 5,please.");
    }
    return code;
}

[此贴子已经被作者于2017-7-28 14:28编辑过]

搜索更多相关主题的帖子: 输入 整型 code printf the 
2017-07-28 14:21
wangjiayou
Rank: 1
等 级:新手上路
帖 子:57
专家分:0
注 册:2017-6-25
得分:0 
回复 2楼 renkejun1942
这是书上程序,我原样敲的,按书上的输入,运行结果和书后面的一样。可是,我就是不明白处理非整型数字if的那儿。  如果输入的是非整型,比如j。为什么程序会死循环。程序在输入非整型的时候,具体怎么运行的。我晕了,,,
2017-07-28 14:33
wangjiayou
Rank: 1
等 级:新手上路
帖 子:57
专家分:0
注 册:2017-6-25
得分:0 
回复 4楼 wp231957
是啊,但是书上有处理非整型输入的if()那儿,我就想着输入一个非整型试试,结果死循环。  我想着既然是书上的,就算接收的是非整型,那也不能死循环呀。可谁知道,是死循环。不明白书上为什么接收了非整型,是死循环,还写出来。 所以来论坛求个明白
2017-07-28 16:30
wangjiayou
Rank: 1
等 级:新手上路
帖 子:57
专家分:0
注 册:2017-6-25
得分:0 
回复 6楼 renkejun1942
谢谢
2017-07-28 20:04



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-479673-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.689155 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved