有时候编程需要处理一行字符串,包括空格连接起来的一行。直接用cin的话读到空格就会停止。
实用的方法是使用getline函数配个stringstream流操作,简易代码如下。
#include <iostream>
#include <sstream>
#include <string>
using namespace std;
int main()
{
string str;
while(getline(cin,str))
{
cout<<endl;
istringstream get(str);
string substring;
while(get>>substring)
{
cout<<substring<<endl;
}
}
return 0;
}
上面的程序中,首先使用getline读取一行字符串,然后使用istringstream get(str)将读取的str与get关联,然后就可以循环的从get中读取数据。非常方便。
参考 C++primer 第五版 P288