參考:http://blog.csdn.net/xw20084898/article/details/21939811
http://nnssll.blog.51cto.com/902724/198237/
http://www.cnblogs.com/luxiaoxun/archive/2012/08/03/2621803.html
一、stringstream通常是用來做數據轉換的。
1、例如int轉string:
#include?<string>
#include?<sstream>
#include?<iostream>
int?main()
{
????std::stringstream?stream;
????std::string?result;
????int?i?=?1000;
????stream?<<?i;?//將int輸入流
????stream?>>?result;?//從stream中抽取前面插入的int值
????std::cout?<<?result?<<?std::endl;?//?print?the?string?"1000"
}
2、char*:
int?main()
{
????std::stringstream?stream;
????char?result[8]?;
????stream?<<?8888;?//向stream中插入8888
????stream?>>?result;?//抽取stream中的值到result
????std::cout?<<?result?<<?std::endl;?//?屏幕顯示?"8888"
}
3、再進行多次轉換的時候,必須調用stringstream的成員函數clear();
#include?<sstream>
#include?<iostream>
int?main()
{
????std::stringstream?stream;
????int?first,?second;
????stream<<?"456";?//插入字符串
????stream?>>?first;?//轉換成int
????std::cout?<<?first?<<?std::endl;
????stream.clear();?//在進行多次轉換前,必須清除stream
????stream?<<?true;?//插入bool值
????stream?>>?second;?//提取出int
????std::cout?<<?second?<<?std::endl;
}
————————————————————————————————————
二、sprintf函數
char str[10];
int a=1234321;
sprintf(str,"%d",a);
--------------------
char str[10];
double a=123.321;
sprintf(str,"%.3lf",a);
--------------------
char str[10];
int a=175;
sprintf(str,"%x",a);//10進制轉換成16進制,如果輸出大寫的字母是sprintf(str,"%X",a)
?三、to_string (int val);
int num=1;
string?str=to_string(num);