我们开始在课程中学习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();
}