C++ while循环中的迭代运行并结束,而不接受输入?
我想拆分字符串并将其存储在C++ while循环中的迭代运行并结束,而不接受输入?,c++,string,while-loop,stringstream,deque,C++,String,While Loop,Stringstream,Deque,我想拆分字符串并将其存储在resultdeque中,根据当前输入,然后在(计数-->0)时再次执行 在这种情况下,计数=3 输入字符串:abc def ghi while (count-- > 0){ cout << " start of while loop" << endl; deque<string> result; string str2; cin >> str2; istringstre
result
deque中,根据当前输入,然后在(计数-->0)时再次执行
在这种情况下,计数=3
输入字符串:abc def ghi
while (count-- > 0){
cout << " start of while loop" << endl;
deque<string> result;
string str2;
cin >> str2;
istringstream iss(str2);
for(string s; iss >> s; ){
result.push_back(s);
}
cout << "result.size() " << result.size() << endl;
}
}
我应该能够接受输入3次,但当循环自动运行3次时,不会接受输入并结束。
为什么会这样?而不是这样:
while (count-- > 0){
cout << " start of while loop" << endl;
deque<string> result; // result created inside loop
您确定deque在循环中吗?与您遇到的问题无关,但请记住,输入运算符>
读取空格分隔的输入。不需要内部循环。除非你想一次分离它?但是为什么while循环不接受输入?想想范围…没有帮助,即使deque在外部,循环也会突然结束而不接受输入3次,这就是问题所在。所以你看,结果大小增加到3,但我应该能够再给输入2次(计数=3),为什么下一个while循环运行时不接受输入???@MohitKumar:那么你期望abc def ghi被视为单个输入?abc def ghi。。是一个字符串,我想以拆分形式保存在deque中。是的,它是一个单一的输入。
while (count-- > 0){
cout << " start of while loop" << endl;
deque<string> result; // result created inside loop
deque<string> result; // result created outside loop
while (count-- > 0){
cout << " start of while loop" << endl;
getline(cin,str2);