gpt4 book ai didi

C++如何检查Shell输入的数量?

转载 作者:行者123 更新时间:2023-11-28 02:33:34 25 4
gpt4 key购买 nike

下面是我的C++代码:

void test(int array[], int length) {
int index; // the index of heap array that human want to modify
int num; // the number of heap in the index position
cout << "input the index and num" << endl << flush;
string si,sj;
try{
cin >> si >> sj;
index = stoi(sj);
num = stoi(si);
}catch(std::exception e){
cout << "error, try again" << endl;
test(array, length);
}
if (index <= length && index > 0 && num > 0 && num <= array[index - 1]) {
array[index - 1] -= num;
// print(array, length);
} else {
cout << "error, try again" << endl;
test(array, length);
}
}

现在有一个 shell 来运行这段代码,但在 shell 中,存在如下输入:

input the index and num 2 1

这是正确的

input the index and num 2

它只有 1 个值,程序阻塞在这里等待另一个输入,我应该弄清楚并输出“错误,再试一次”

input the index and num 1 2 3

这也是不正确的,因为有超过 2 个输入值。同样,我应该弄清楚并输出“错误,再试一次”

如何处理?

最佳答案

你应该使用 cin.getline代替您的输入。

然后 split the string into substrings并数一数。

关于C++如何检查Shell输入的数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28323587/

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