我的代码在输入字符串后出现错误。我需要输入一个字符串(例如添加水果),然后通过“ add”关键字将其放入我的向量中。但是当我也输入一个单词(例如print)时,就可以打印矢量中的元素。它不会工作。有见识吗?
#include <iostream>
#include <sstream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
vector <string> separate(string str){
string word = "";
vector <string> v = {0,0};
for (auto x : str)
{
if (x == ' ')
{
v[1] = word;
word = "";
}
else
{
word = word + x;
}
}
v[0] = word;
return v;
}
int main(){
string user_input, command, item;
int cmds;
vector <string> result;
while (1){
cout << "Enter a command: ";
getline(cin, user_input);
vector <string> arrcmd = separate(user_input);
(arrcmd.size() == 1) ? (command = arrcmd[0]) : (command = arrcmd[1], item = arrcmd[0]);
cout << arrcmd.size() << endl;
/* command = arrcmd[0], item = arrcmd[1]; */
cout << command << " " << item << endl;
答案 0 :(得分:1)
vector <string> v = {0,0};
创建一个包含两个元素的向量。因此,separate
始终返回大小为2的向量-只是并不总是填充其第二个元素。
main
尝试根据向量大小进行决策-但从未采用size() == 1
路径。