【问题标题】:Splitting string from inputstream with whitespace delimiter使用空格分隔符从输入流中拆分字符串
【发布时间】:2013-09-22 06:49:49
【问题描述】:

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

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

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

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

感谢任何帮助。

【问题讨论】:

  • 能否请您出示您的代码?

标签: c++


【解决方案1】:

你可以使用istringstream:

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

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

 

您的while(cin &gt;&gt; str); 不会停止,除非:

  1. &gt;&gt; 出现故障,这对你来说很难。

  2. 出现EOF(可以使用Ctrl+Z、Ctrl+D、F6这取决于你的系统)

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

【讨论】:

  • For 循环在有机会输入之前被触发
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-02-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-17
相关资源
最近更新 更多