gpt4 book ai didi

c++ - 有人可以解释这个 while 循环中的错误吗?

转载 作者:行者123 更新时间:2023-11-28 02:46:32 24 4
gpt4 key购买 nike

所以我是一名初级程序员......我无法弄清楚我为文本冒险编写的这段代码中的问题是什么。我现在想让它做的就是让用户输入命令,然后将其转换为 ALLCAPS 并打印出来。它应该输出这个:

What shall I do?
pie
Your raw command was: PIE

但是,它输出的是:

What shall I do?
pie
PIE

...然后它卡住了。这是代码:

#include <iostream>
#include <string>
#include <cctype>
#include <cstring>
#include <vector>
using namespace std;

void command_case();

string userIn;
string raw_command;
int x = 0;

int main()
{
while(raw_command != "QUIT")
{
cout << "What shall I do?\n";
cin >> userIn;
command_case();
cout << "Your raw command was: " << raw_command << endl;
}
return 0;
}

void command_case()
{
char command[userIn.size()+1];
strcpy(command, userIn.c_str());
while(x < userIn.size()+1)
{
if(islower(command[x]))
{
command[x] = toupper(command[x]);
cout << command[x];
x++;
}
else if(isupper(command[x]))
{
cout << command[x];
x++;
}
}
raw_command = command;
}

我认为可能是 void command_case() 中的 while 循环有问题,但我无法弄清楚到底是什么问题。如果您能给我任何建议,我将不胜感激。

最佳答案

太多了:

while(x < userIn.size()+1)

关于c++ - 有人可以解释这个 while 循环中的错误吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24224417/

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