第一行为数值i
接着的i行为需要输入的算式,每行可能有三个数据或两个数据。
看到这还真懵逼了,这样的要求第一次见。
于是看了题解里别人的解释。
感觉自己学到了呢
对于int类型变量,如果用户输入非数字输入,程序将拒绝,并要求用户继续输入数字
可以使用cin输入表达式的值来检测输入是不是数字。
程序发现用户输入了错误内容时,应采取3个步骤。
1.重置cin以接受
2.删除错误输入
3.提示用户再输入
注意,程序必须先重置cin,然后才能删除错误输入。
顺便放入原题(P1957 口算练习题)AC代码
#include<iostream>
#include<algorithm>
#include<string>
#include<vector>
using namespace std;
typedef long long ll;
int main()
{
int n;
cin >> n;
char ch;
while (n--)
{
int a, b;
if (!(cin >> a))
{
cin.clear();
cin >> ch >> a;
}
cin >> b;
string ans;
switch (ch)
{
case 'a': ans = to_string(a) + "+" + to_string(b) + "=" + to_string(a + b); break;
case 'b': ans = to_string(a) + "-" + to_string(b) + "=" + to_string(a - b); break;
case 'c': ans = to_string(a) + "*" + to_string(b) + "=" + to_string(a * b); break;
}
cout << ans << endl;
cout << ans.size() << endl;
}
}