gpt4 book ai didi

C++ 字符串流解析

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

我正在尝试从命令提示符读取有效的用户输入:

例如,有效的用户输入格式如下:

获取数据<>

<> - 任何字符串类型值

在命令提示符下:

例如 getData 名称 => 正确(在 getData 之后只输入了一个参数,符合预期)e.g getData name ID => InCorrect (getData后输入了多个参数)e.g getData => InCorrect (由于getData后没有输入参数)

如何检查参数数量?我的代码逻辑如下:

string cmd_input;

getline(cin, cmd_input)

stringstream ss(cmd_input);

string input;
string parameter;

ss >> input; //getData
ss >> parameter; //name

如何进行有效/无效检查?我不想通过循环运行它直到 EOF 流并计算参数的数量。我阅读了 peek() 并不确定它在这里如何适合。另外,我不想使用 vector 来存储参数。

谢谢!

最佳答案

您可以在检索输入后检查流本身的状态。如果检索成功,它将是 true。您希望它在两次检索后返回 true,但在第三次检索时返回 false

if (!(ss >> input1) || input1 != "getData") { //... error : unexpected cmd
}
if (!(ss >> input2)) { //... error: no param
}
if (ss >> input3) { //... error: too many params
}
//... okay

关于C++ 字符串流解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19191410/

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