【发布时间】:2021-03-26 06:35:57
【问题描述】:
我写了一个小程序,把两个整数相加:
#include <iostream>
using namespace std;
int inpInt() { //ask for an input in integer format
int number = 0;
cin >> number;
while (!cin) { //keep asking if the input was not an integer
cin >> number;
}
return number;
}
int main() {
int summand1, summand2, sum;
cout << "Summand 1: "; summand1 = inpInt();
cout << "Summand 2: "; summand2 = inpInt();
sum = summand1 + summand2;
cout << "Sum: " << sum << "\n";
}
问题是,当我不输入整数时,我陷入了一个无限循环,我既不能输入整数也不能输入其他任何东西。奇怪的是,当我在 main() 中包含整数测试循环时,代码可以工作。
非常感谢您的帮助!
【问题讨论】:
-
你可以用ˋstd::any`代替ˋint`然后测试它的类型
-
@TUIlover 不回答或帮助解决特定问题。
-
这是 c++ 在 imo 中失败的部分。这就是我要做的godbolt.org/z/93sM8cPar
标签: c++