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);