C++で標準入力から数が不定なスペース区切りの文字列を読み込んで分割する
c++std::getline(basic_istream, basic_string, delim)を使う。
第三引数delimかEOFに達するとそこまでの文字列を出力する。delimを渡さないとis.widen('\n')
となり一行読む。
一度stringstreamにしているのは、getline(cin, s, ' ')
のように直接読み込もうとすると最後の文字列の後にdelimもEOFも来ずに止まってしまうため。
#include <bits/stdc++.h>
using namespace std;
int main()
{
string s;
getline(cin, s);
stringstream ss(s);
while (getline(ss, s, ' '))
{
cout << s << " " << endl;
}
return 0;
}