| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3822 人关注过本帖
标题:一个int型变量接收从键盘读入的值,想在输入为字母时重新输入,应该怎么做呢 ...
只看楼主 加入收藏
wengbin
Rank: 10Rank: 10Rank: 10
来 自:陕西西安
等 级:贵宾
威 望:19
帖 子:370
专家分:1846
注 册:2015-5-8
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:7 
一个int型变量接收从键盘读入的值,想在输入为字母时重新输入,应该怎么做呢?
程序代码:
int GetRequirementFromKeyboard(void)
{
    int Requirement_Number=0;
    int flag=1;
    cout<<"enter a requiremnet-number:";
    cin>>Requirement_Number;
    while(flag)
    {
        
        if(Requirement_Number>0&&Requirement_Number<7)flag=0;//一次正确输入就跳出循环
        else 
        {
            cin.clear();
            cout<<"\nOut of rang,please enter a new requiemnet-number\n";
            cin>>Requirement_Number;
        }
                //输入为字母时死循环了,请问是怎么回事?
    }
    return Requirement_Number;
}


[此贴子已经被作者于2016-2-29 16:35编辑过]

搜索更多相关主题的帖子: 键盘 字母 
2016-02-29 16:26
hjx1120
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:李掌柜
等 级:贵宾
威 望:41
帖 子:1314
专家分:6927
注 册:2008-1-3
收藏
得分:0 
用cctype头文件中的isapha()函数判断是否是字符
2016-02-29 16:31
wengbin
Rank: 10Rank: 10Rank: 10
来 自:陕西西安
等 级:贵宾
威 望:19
帖 子:370
专家分:1846
注 册:2015-5-8
收藏
得分:0 
回复 2楼 hjx1120
那样的话,就只能用char型变量来存数字了是吧,我是想试试就用int型能不能行....
2016-02-29 16:34
wengbin
Rank: 10Rank: 10Rank: 10
来 自:陕西西安
等 级:贵宾
威 望:19
帖 子:370
专家分:1846
注 册:2015-5-8
收藏
得分:0 
回复 2楼 hjx1120
请问如果用char型变量存数字,怎么判断数字是在1-6之间呢?
2016-02-29 16:37
hjx1120
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:李掌柜
等 级:贵宾
威 望:41
帖 子:1314
专家分:6927
注 册:2008-1-3
收藏
得分:0 
回复 4楼 wengbin
C语言中int 和char是一样的,C++不知道
2016-02-29 16:54
hjx1120
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:李掌柜
等 级:贵宾
威 望:41
帖 子:1314
专家分:6927
注 册:2008-1-3
收藏
得分:8 
回复 4楼 wengbin
字符可以用
.........
char xxxx;
.........
while (xxxx >= '1' && xxxx <= '6')
{
    ........
}
......
2016-02-29 16:59
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:12 
程序代码:
#include <iostream>
#include <limits>
using namespace std;

int GetRequirementFromKeyboard(void)
{
    int value = 0;
    for( ; cout<<"enter an number(1-6):", cin>>value, !cin||value<1||value>6; )
    {
        if( !cin )
            cin.clear();
        cin.ignore( numeric_limits<streamsize>::max(), '\n' );
    }
    return value;
}

int main( void )
{
    int n = GetRequirementFromKeyboard();
    cout << n << endl;

    return 0;
}
2016-03-01 08:36
wengbin
Rank: 10Rank: 10Rank: 10
来 自:陕西西安
等 级:贵宾
威 望:19
帖 子:370
专家分:1846
注 册:2015-5-8
收藏
得分:0 
回复 7楼 rjsp
正是我想要的,谢谢R版
2016-03-01 10:08
快速回复:一个int型变量接收从键盘读入的值,想在输入为字母时重新输入,应该怎 ...
数据加载中...
 
   



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

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