私は空白で区切られた小さな文字列に入力文字列を分割しようとしていました。 hereからC++ Stringstream:文字列を受け入れますが、変数に格納された文字列は受け入れません。どうして?
stringstream ss ("bla bla");
string s;
while (getline(ss, s, ' ')) {
cout << s << endl;
}
のコードが見つかりました。しかし、私は、文字列を含む変数と「BLA BLA」を交換する場合:
string userInput;
cin >> userInput;
stringstream ss (userInput);
string s;
while (getline(ss, s, ' ')) {
cout << s << endl;
}
のみ最初の単語/文字/文字列のプリントを行います。何故ですか?それを修正する方法はありますか?私は文字列ストリームのいくつかの質問を見回しましたが、問題は私が探しているものが本当にわからないことです。
#include "stdafx.h"
#include <string>
#include <sstream>
#include <iostream>
int _tmain(int argc, _TCHAR* argv[])
{
std::string test("bla bla");
std::stringstream stream(test);
std::string temp;
while (getline(stream, temp, ' ')) {
std::cout << temp << std::endl;
}
return 0;
}
それはあなたがやったとでも何である:
「という文字列を含む変数」の一例を示し、それに 'stringstream'を初期化してください。 – Xeo
私のためにうまく動作します。 –
私によく見える:http://ideone.com/1AvVV。 –