0

我似乎无法用空格分隔符分割我的字符串。

我尝试使用 getline(cin, myString)。

我将字符串输入为“10 20 30”,当我将字符串打印到输出流上时,我得到“20 30”,但不是 10。

我还尝试了 while(cin >> string)。它在这里工作,但 while 循环永远不会终止。

任何帮助表示赞赏。

4

1 回答 1

1

您可以使用istringstream

string str;
getline(cin, str);
istringstream ss(str);

for(string word; ss >> word; )
    cout << word << endl;

 

while(cin >> str);不会停止,除非:

  1. >>在你的情况下,有些事情会失败。

  2. EOF 发生(您可以使用Ctrl+ ZCtrl+ DF6这取决于您的系统)

  3. 用户定义的条件:if(str.find('\n')) break;

于 2013-09-22T06:53:13.083 回答