| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2625 人关注过本帖
标题:关于Switch输入字母后死循环怎么解决?求指导
取消只看楼主 加入收藏
handy99999
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2015-5-25
结帖率:0
收藏
已结贴  问题点数:2 回复次数:6 
关于Switch输入字母后死循环怎么解决?求指导
本人小白,看书后写了一个简单的switch程序,但是在运行的时候不小心输入了字母,然后就死循环了,请各位大大帮忙看看要怎么改才不会那样;
先谢谢了!新人没有多少分,请见谅!

#include<stdio.h>
int main(void)
{
int i;
char ch;
while(i!=4)
    {
    printf("输入:");
    scanf("%d",&i);
    while (ch=getchar()!='\n')//只解决了1we格式输入的问题,但是连续输入字母时显示的结果还是之前的。
    continue;
    switch (i)
    {
    case 1: printf("1111\n");
        break;
    case 2: printf("2222\n");
        break;
    case 3: printf("3333\n");
        break;
    case 4: break;
    default : printf("错误!\n");
        break;
   
    }
    }
return 0;
}
搜索更多相关主题的帖子: continue include 字母 
2015-06-28 23:08
handy99999
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2015-5-25
收藏
得分:0 
开始没有打如下代码时,一按字母就死循环
while (ch=getchar()!='\n')//只解决了1we格式输入的问题,但是连续输入字母还是不行
        continue;
后来想来想去加上去后,发现只要按字母显示的都一样,
比如:1ef 显示1111
再输入gfd 还是显示1111,我想正确显示是应该“错误!”
要怎么修改?
2015-06-28 23:12
handy99999
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2015-5-25
收藏
得分:0 
忘了说我用的是VC++6.0
2015-06-28 23:15
handy99999
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2015-5-25
收藏
得分:0 
回复 4楼 家力掠
没怎么看懂您的意思。。。
2015-06-28 23:19
handy99999
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2015-5-25
收藏
得分:0 
试了你的代码,结果还是和我写的效果一样,仍然没有解决我说的问题:
以下是引用handy99999在2015-6-28 23:12:57的发言:

开始没有打如下代码时,一按字母就死循环
while (ch=getchar()!='\n')//只解决了1we格式输入的问题,但是连续输入字母还是不行
        continue;
后来想来想去加上去后,发现只要按字母显示的都一样,
比如:1ef 显示1111
再输入gfd 还是显示1111,我想正确显示是应该“错误!”
要怎么修改?
2015-06-28 23:38
handy99999
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2015-5-25
收藏
得分:0 
我的意思是当输入字母时;
首先不会死循环,
第二 输入字母时,结果应该到default 分支去。就是输出"错误",而不是重复之前的结果。
比如:1ef 输出显示1111
再输入gfd 还是输出显示1111
再输入其他字母仍然是输出1111
这就不对了呀
正确显示是应该输出“错误!
我们用代码
while (ch=getchar()!='\n')
        continue;
只是屏蔽了字母,在缓冲中还是保留了上次输入的值。
没有题目,是我在练习是发现的问题
2015-06-29 00:11
handy99999
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2015-5-25
收藏
得分:0 
while ((ch=getchar())!= '\n')
        continue;
是的。忘记多加一个括号
2015-06-29 00:17
快速回复:关于Switch输入字母后死循环怎么解决?求指导
数据加载中...
 
   



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

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