参考链接:http://www.cnblogs.com/kex1n/archive/2011/11/06/2237934.html
1,ostringstream常用来将多个信息快速拼装进字符串string中
用法示例:
#include <iostream>
#include <sstream>
int main(void)
{
std::string name("zeta");
int age = 27;
std::ostringstream os;
os << "name: " << name << " age: " << age << std::endl;
std::string key = os.str();
std::cout << os.str() << std::endl;
return 0;
}
2,istringstream常用来从string中解析需要的元素(默认这些元素以空格和回车键作为分隔符)
用法示例:
#include <iostream>
#include <sstream>
int main(void)
{
std::string name("1 2");
std::istringstream is(name);
int num1,num2;
is >> num1;
is >> num2;
std::cout << "num1: " << num1 << " num2: " << num2 << std::endl;
return 0;
}
备注:
istringstream不能指定分隔符,若想使用其他分隔符,可使用istringstream::get函数
参考链接:http://topic.youkuaiyun.com/u/20110504/15/2bbbbc76-6e9c-45bb-924c-b03da819407c.html
#include <iostream>
#include <string>
#include <sstream>
int main()
{
int length ;
std::string st = "Enter,the,name,of,an,existing,text,file:";
std::istringstream stream(st);
int i = 0;
char array[20] = {0};
while(stream.get(array, 20, ','))
{
//获取当前位置
length = stream.tellg();
std::cout << array << std::endl;
//跳过逗号(,)
stream.seekg (length + 1, std::ios::beg);
}
return 0;
}
执行效果如下图所示:
3,stringstream常用来实现数据转换
用法示例:#include <iostream>
#include <sstream>
int main(void)
{
std::stringstream ss;
ss << "123";
int num1;
ss >> num1;
std::cout << "num1: " << num1 << std::endl;
ss.clear();
ss << "245";
int num2;
ss >> num2;
std::cout << "num2: " << num2 << std::endl;
return 0;
}