有时候编程需要处理一行字符串,包括空格连接起来的一行。直接用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
原文:http://www.cnblogs.com/xindufresne/p/4703379.html