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

Splitting string from inputstream with whitespace delimiter

本文关键字:拆分 字符串 输入流 空格 分隔符      更新时间:2023-10-16

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

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

我输入字符串为"10 20 30",

当我将字符串打印到输出流上时,我得到"20 30",而不是 10。

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

任何帮助,不胜感激。

您可以使用

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;