【发布时间】:2020-12-02 14:52:22
【问题描述】:
我试图制作一个程序,在输入 -1 之前接受输入,并使用异常正确处理输入。
它接受用户输入FirstName 和Age 并打印FirstName 并将年龄增加1。如果第二个变量不是整数(年龄),那么它应该打印FristName 和0。
但是我的程序给了我一个意想不到的输出。我该如何解决这个问题?
提前致谢。
输入格式
John 12
Michel 15
Alice Graz 11
Bob 15
-1
预期输出
John 13
Michel 16
Alice 0
Bob 16
我的代码
#include <string>
#include <stdexcept>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
string inputName;
int age;
cin.exceptions(ios::failbit);
cin >> inputName;
while (inputName != "-1")
{
try
{
cin >> age;
}
catch (exception ex)
{
age = -1;
if (cin.fail())
cin.clear();
cin.ignore();
}
cout << inputName << " " << (age + 1) << endl;
cin >> inputName;
}
return 0;
}
【问题讨论】: