本文共 1369 字,大约阅读时间需要 4 分钟。
#include#include #include #include #include using namespace std;int main() { vector vint1; string num1; int index = 0; try { vint1.clear(); cout << "Please input three integers: "; cin >> num1; istringstream is1(num1); double i; while (is1 >> i) { if (i - static_cast (i) == 0) { // 判断是否为整数 vint1.push_back(i); } } if (vint1.size() != 3 || vint1[0] <= 0 || vint1[1] <= 0 || vint1[2] <= 0) { throw runtime_error("Illegal input!"); } } catch (runtime_error err) { cout << err.what() << "\nTry Again? Enter Y or N.\n"; char decision; cin >> decision; if (!cin || decision == 'n' || decision == 'N') { return -1; } else { cout << endl; goto begin; } } int length[3] = {vint1[0], vint1[1], vint1[2]}; sort(length, length + 3); if (length[0] + length[1] <= length[2]) { cout << "They don't make a triangle.\n"; } else { cout << "They make a triangle.\n"; } return 0;}
程序要求用户输入三个整数。若输入符合要求且能够构成三角形,则输出"They make a triangle.",否则输出"They don't make a triangle."
程序通过严格的输入验证确保用户输入符合预期:
程序可以通过以下方式强迫用户反复输入,直到正确:
while (1) { char anything; cin >> anything; if (cin.fail()) { cin.clear(); cin.ignore(); cout << "输入的不是整数!\n"; } else break;}
这个小程序会在用户输入非整数时提示并重新输入,直到输入正确为止。
转载地址:http://hcogz.baihongyu.com/