參考鏈接: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.csdn.net/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;
}