gpt4 book ai didi

c++ - 为什么我没有正确解析?

转载 作者:行者123 更新时间:2023-11-30 02:00:26 26 4
gpt4 key购买 nike

对于我的一项 C++ 作业,我必须解析如下句子:

SET a = 10SET b = aPRINT b

To parser these statements, I used the following code:

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 a”,它就不起作用

有人可以帮忙吗?

最佳答案

使用

while ( tmp >> str )

tmp.good() 只说明是否还剩下任何东西。您想知道从中获取另一个字符串是否有效。

关于c++ - 为什么我没有正确解析?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15162156/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com