对于我的一项 C++ 作业,我必须解析如下语句:
设置 a = 10 设置 b = a 打印 b
为了解析这些语句,我使用了以下代码:
vector<string> stringSplitter(istringstream& tmp) {
vector<string> tokens;
string str;
while(tmp.good()) {
tmp >> str;
tokens.push_back(str);
}
return tokens;
}
对于错误检查,我想确保 SET 命令只有 4 个标记,而 PRINT 语句只有 2 个标记。因此,当我检查 SET 命令和 PRINT 命令时,我有相应的条件:
if (tokens.size() != 4) {
cerr << "Error in Line "<< lineNumber <<":Invalid format\n";
return -1;
}
和
if (tokens.size() != 2) {
cerr << "Error in Line "<< lineNumber <<":Invalid format\n";
return -1;
}
我遇到的问题是它适用于“SET a = 10”和“PRINT a”,因为如果在句子末尾有空格,如“SET a = 10”和“PRINT”,它就不起作用一个 ”
有人能帮忙吗?