验证用户输入。输入是整数吗? C ++

时间:2017-09-07 15:33:36

标签: c++

我们开始在课程中学习c ++,我正在做一些非常简单的事情,添加两个数字。这项工作不需要任何其他东西。 我想检查输入是否为整数,我试图寻找答案,但没有得到任何答案。

例如:

    int x;

    if(cin >> x) // < does it check if the input is the same type as the 
                // variable declaration? 

但它确实不起作用......

所以我试着这样做:

if(isdigit(x[i])) // I declared char x []; instead of int x;

并尝试将x转换为int

sum += (int)x;

和我的主要功能:

return sum = myFunction();

但是在给出两个输入之后,程序返回&#34; Invalid Input&#34;。 isdigit(x [i])返回false的结果是什么。但即使我写了两个整数,它也会发生。

这是完整的代码:

#include <iostream>
#include <ctype.h>;

using namespace std;

char x [] = "";
int sum = 0;
int i = 0;

int additionOfTwoNumbers()
{
    while(i<2)
    {
        cin >> x;
        if(isdigit(x[i]))
        {
            sum += (int)x;
            i++;
        }
        else
        {
            cout << "Invalid Input";
        }

}

    return sum;
}

int main()
{
    cout << "Enter two integers" << endl;
    return sum = additionOfTwoNumbers();
}

感谢。

不知道即使关闭这个问题,有人也能找到它。

所以我想分享我从顶部标记的问题中得到的答案。

#include <iostream>
#include <ctype.h>;
using namespace std;

int x;
int sum = 0;
int i = 0;

int additionOfTwoNumbers()
{
    while(i<2)
    {
        cin >> x;
        if(cin.fail())
        {
           cout << "Error! Invalid Input" << endl;
           cin.clear();
           cin.ignore(256,'\n');
        }
        else{
                 sum += x;
                 i++;
            }
     }

    return sum;
}

int main()
{
    cout << "Enter two integers" << endl;
    return sum = additionOfTwoNumbers();
}

0 个答案:

没有答案