我的程序输入有问题。它应该输入一个数学表达式,例如(x + 3 + ax - 5)
。所有项目都由一个空白分隔。
我处理这个问题的方式:首先我尝试用 cin >> number
读取一个整数。如果失败,我会尝试读取一个字符数组。然后我检查这是否是一个运算符 (+,-,*,/,( or )
) - 如果不是,那么这一定是一个变量。
我遇到的问题是加号和减号。 cin
在读取整数时似乎不会在读取 + 或 - 时打印错误。有什么方法可以按照我的意图进行这项工作吗?
在此先感谢,这是我的代码片段:
int number; char * signs = new char[3]; char signsBeginning[3] = "aa";
signs = signsBeginning;
while(#endexpression){
cin >> number;
if(!cin){
//not a number
cin.clear();
cin >> signs;
//handling the input
}else{
//number
}
}
编辑:忘记添加:我不能使用字符串。
最佳答案
是否可以只使用 std::getline()
读取整个字符串,然后对其进行解析?
std::string line;
std::getline(std::cin, line);
// Parse the read line ...
关于c++ - cin - 读取加/减为 char,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22940607/