我正在编写一个程序,它获取用户的字符串输入并通过空格对其进行解析。
由于程序需要反复接收用户输入,直到用户输入“退出”,我将所有代码放在一个while循环中,如下所示:
while(cont == true)
{
cin>>command;
string parsedStr[3];
parsedStr[0] = "";
parsedStr[1] = "";
parsedStr[2] = "";
int j = 0;
for(i=0; i<command.size(); i++)
{
if (command[i] == ' ')
{
++j;
}
parsedStr[j] += command[i];
}
cout<<"Command: "<<parsedStr[0]<<"\n";
cout<<"Argument 1: "<<parsedStr[1]<<"\n";
cout<<"Argument 2: "<<parsedStr[2]<<"\n";
/* do my desired operations according to the received command */
}
但是,当我输入诸如“执行 12 345”之类的命令时,它将显示以下结果并且不解析参数:
Command: execute
Argument 1:
Argument 2:
Command: 12
Argument 1:
Argument 2:
Command: 345
Argument 1:
Argument 2:
但是当我将解析器移出while循环时,它可以完美运行并打印出以下内容:
Command: execute
Argument 1: 12
Argument 2: 345
我应该怎么办?