C/C++ 申明int型变量a,当输入其他类型时怎么检测报错

inta,b,c,d;cin>>a>>b>>c>>d;if(a<0||a>9||b<0||b>8){cout<<a<<","<<b<<"位置不在棋盘上!"<<endl;}... int a,b,c,d;
cin >> a >> b >> c >> d;
if(a<0 || a>9 || b<0 || b>8) {
cout << a << "," << b << "位置不在棋盘上!" << endl;
}
这里如果你输入这样的: 1 2 3 4没问题
但要是这样就有问题: 1 2 e 3 或 1 p 2 1 等等
要怎么解决啊?
展开
 我来答
bad12358
推荐于2017-10-11 · TA获得超过343个赞
知道小有建树答主
回答量:222
采纳率:0%
帮助的人:275万
展开全部

std::cin会根据你的值类型去检测类型是否正确的

#include <iostream>

using namespace std;

int main()
{
    int a = 0;

    cin >> a;

    if ( cin.fail() )
    {
        cout << "input error..." << endl;
        return 0;
    }

    cout << a << endl;

    return 0;
}

 如果你输入了字母,是会出错的。

散漫yesterday
2015-01-11 · TA获得超过175个赞
知道答主
回答量:100
采纳率:100%
帮助的人:45.4万
展开全部
你加一个判断,判断输入的值是否全为数字,然后在赋值或者输出
追问
怎么判断?当我输字符型进去时就会取这个字符的ASC码,这个时候应该在我的判断条件超出范围中cout才对
追答
cin >> a >> b >> c >> d;
while(判断条件)
{
cout > a >> b >> c >> d;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式