所以我正在创建一个命令行应用程序,并且我试图允许带有参数的命令,或者如果参数用引号括起来,它将被视为 1 个参数。
示例:测试“1 2”
“test”将是命令,“1 2”将是传递的单个参数。
使用以下代码片段:
while(getline(t, param, ' ')) {
if (param.find("\"") != string::npos) {
ss += param;
if (glue) {
glue = false;
params.push_back(ss);
ss = "";
}
else {
glue = true;
}
}
else {
params.push_back(param);
}
}
但是 std::getline 似乎会自动删除导致我的参数从“1 2”变为“12”的空格
我环顾四周,但结果充斥着“如何删除空格”的答案,而不是“如何不删除空格”
有人有什么建议吗?