gpt4 book ai didi

C++程序在条件为假之前退出循环

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:51:00 24 4
gpt4 key购买 nike

此方法接受一个 vector (inputVector,成员变量)并将其拆分为 char*[]。每当你遇到一个“;”在 vector 中,打印出存储在 args 中的最后一组 char*。即使 vector 大小为 14,循环也会在第 5 次循环时退出。

vector 数据(换行符分隔项目):
/bin/回声
基尔罗伊

这里;
;
西兹
;
不存在的程序
;
/bin/真
;
/bin/假
;

void TrivialShell::splitArguments() {

char* args[MAX_ARGS];

int inputVectorIdx = 0;
int currentArgsIdx = 0;
int startingArgsIdx = 0;

while (inputVectorIdx < inputVector.size()) {

if (inputVector[inputVectorIdx] == ";") {
for (int k = startingArgsIdx; k <= currentArgsIdx; k++) {
cout << args[k];
}
startingArgsIdx = currentArgsIdx + 1;
}

else {
args[currentArgsIdx] =
const_cast<char*>(inputVector[inputVectorIdx].c_str());
}

inputVectorIdx++;
currentArgsIdx++;
}
}

最佳答案

for (int k = startingArgsIdx; k < currentArgsIdx; k++) {
// ^^
cout << args[k];
}

您尝试打印太多。你没有说,但我敢肯定它不会只是跳过循环而是退出程序。

关于C++程序在条件为假之前退出循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15960716/

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