| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 580 人关注过本帖
标题:新人求助,怎么让程序在输入的类型不正确时给出提示
只看楼主 加入收藏
骇客不会飞
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2013-9-6
结帖率:0
收藏
已结贴  问题点数:20 回复次数:6 
新人求助,怎么让程序在输入的类型不正确时给出提示
#include<iostream>
int main()
{
    using namespace std;
    int i,n;
    while(cin>>n)
    {
    int all=1;
    for(i=1;i<=n;i++)
    {
        all*=i;
    }
    cout<<all<<endl;
    }
    return 0;
}
n的类型为int,怎样让程序在我输入一个char类型的值时判断并提示报错,代码里应该加入什么?或者怎么改?求助各位大神
2013-09-06 22:38
peach5460
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:武汉
等 级:贵宾
威 望:30
帖 子:2780
专家分:6060
注 册:2008-1-28
收藏
得分:5 
先吧输入放到一个string里面,再判断是否为整数

我总觉得授人以鱼不如授人以渔...
可是总有些SB叫嚣着:要么给代码给答案,要么滚蛋...
虽然我知道不要跟SB一般见识,但是我真的没修炼到宠辱不惊...
2013-09-06 23:13
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9008
专家分:53957
注 册:2011-1-18
收藏
得分:5 
程序代码:
#include <iostream>
#include <limits>

int main()
{
    using namespace std;

    cout << "请输入一系列自然数:\n";
    for( unsigned int n; cin>>n, !cin.bad() && !cin.eof(); )
    {
        if( cin.fail() || n==0 )
        {
            cin.clear();
            cin.ignore( std::numeric_limits<streamsize>::max(), '\n' );
            cout << "输入错误\n";
            continue;
        }

        unsigned factorial = n;
        for( unsigned i=1; i!=n; ++i )
            factorial *= i;
        cout << n << "! = " << factorial << endl;
    }

    return 0;
}
2013-09-07 08:39
柳州喜来登
Rank: 1
等 级:新手上路
帖 子:1
专家分:5
注 册:2013-9-7
收藏
得分:5 
问题1:using namespace std;  是什么意思呢?
问题2: !cin.bad() 是什么意思呢?
问题3:cin.fail() 是什么意思呢?
问题4:cin.clear(); 是什么意思呢?
问题5:cin.ignore( std::numeric_limits<streamsize>::max(), '\n' ); 是什么意思呢?
问题6:unsigned factorial 为什么用那么长的factorial,factorial是什么意思呢?

恳请智者给我解释一下,多谢!
2013-09-07 11:49
peach5460
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:武汉
等 级:贵宾
威 望:30
帖 子:2780
专家分:6060
注 册:2008-1-28
收藏
得分:0 
以下是引用柳州喜来登在2013-9-7 11:49:06的发言:

问题1:using namespace std;  是什么意思呢?
问题2: !cin.bad() 是什么意思呢?
问题3:cin.fail() 是什么意思呢?
问题4:cin.clear(); 是什么意思呢?
问题5:cin.ignore( std::numeric_limits<streamsize>::max(), '\n' ); 是什么意思呢?
问题6:unsigned factorial 为什么用那么长的factorial,factorial是什么意思呢?

恳请智者给我解释一下,多谢!

看书

我总觉得授人以鱼不如授人以渔...
可是总有些SB叫嚣着:要么给代码给答案,要么滚蛋...
虽然我知道不要跟SB一般见识,但是我真的没修炼到宠辱不惊...
2013-09-07 12:36
超神级
Rank: 2
等 级:论坛游民
帖 子:16
专家分:14
注 册:2013-7-25
收藏
得分:5 
2013-09-07 21:02
骇客不会飞
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2013-9-6
收藏
得分:0 
回复 6楼 超神级
2013-09-07 21:44
快速回复:新人求助,怎么让程序在输入的类型不正确时给出提示
数据加载中...
 
   



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

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