使用空格分隔符从输入流拆分字符串

时间:2013-09-22 06:49:49

标签: c++

我似乎无法用空白分隔符拆分我的字符串。

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

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

我也尝试过while(cin>>字符串)。它在这里工作,但while循环永远不会终止。

感谢任何帮助。

1 个答案:

答案 0 :(得分: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 + Z Ctrl + D F6 这取决于您的系统)

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