-1
vector<string> Util::split(string str, char delimiter){
vector<string> internal;
stringstream ss(str); // Turn the string into a stream.
string tok;
while(getline(ss, tok, delimiter)) {
internal.push_back(tok);
}
return internal;
}
string str =“k 1 1”;将字符串拆分为C++中的单独变量
函数getline(β,TOK,'“)
如果我尝试检查大小为返回向量是大小ONE。
string str =“k,1,1”;
函数getline(β,TOK, '')
然而,如果我改变定界符为逗号和修改字符串变量TOK。
规模将然后是三个
因此,有白色空间
问题我能做些什么,使这项工作?我几乎整整一天都在这上面。
int main(){
Util src;
int runProgram = 1;
string input;
while(runProgram!=0){
cout << "Input your command to perfrom operation: " << endl;
cin >> input; // user inputs "k 1 1"
vector<string>sep=src.split(input, ' ');
cout << sep.size() << endl; // size is one when it should be 3
}
}
所显示的代码将不能不管工作怎样被投入'tok',因为'stringstream'会从名为'str'一些其他的,神秘的变量构成。根据描述,它看起来像我所示的代码不是真实代码,而是幻想代码。一个真正的问题的真实答案将需要真正的代码,而不是幻想代码。 –
你是对的我的错误 – Marke
你的代码如现在所示[完美地工作](http://coliru.stacked-crooked.com/a/062c49efb0278e67)。请提供实际存在问题的[mcve]。 – zett42