stringstream类简介
2016-06-10 00:15
190 查看
stringstream类简介
Name:qianghaoaho
#include <iostream> #include <cstring> #include <sstream> using namespace std; //////////////////////////////////////////////////////////////////////////// /// stringstream类简介: /// <sstream>类库定义了三种类:istringstream, /// ostringstream,stringstream.分别用来进行流的输入,流的输出,输入输出 /// 操作.在此演示stringstream的使用.**stringstream最大的特点是可以很方便 /// 的实现各种数据类型的转换,不需要像C语言中转换那么麻烦,而且转换非常安全. /// stringstream经常用于方便安全的类型转换.以下是使用示例: //////////////////////////////////////////////////////////////////////////// /////////////////1.int和string类型互相转换//////////// #if 1 int main() { //********int转换成string********** int n = 300; string result; stringstream oss; //创建一个流 oss<<n; //将n的值传入oss流 oss>>result; //将oss流中的数据写入result变量 //也可以这么写:result = oss.str(); cout << "int(300)--to-->string(300):" << result << endl; //打印转换结果 //********string转换成int********** int m; string int_number = "12345"; stringstream oss1; //创建一个流 oss1<<int_number; //将int_number的值传入oss流 oss1>>m; //将oss流中的数据写入m变量 cout << "string(12345)--to-->int(12345):" << m << endl; //打印转换结果 return 0; } #endif /////////////////2.float和string类型互相转换//////////// #if 0 int main() { //********float转换成string********** float n = 300.8; string result; stringstream oss; //创建一个流 oss<<n; //将n的值传入oss流 oss>>result; //将oss流中的数据写入result变量 //也可以这么写:result = oss.str();表示将流中的数据转换成string类型 cout << "float(300.8)--to-->string(300.8):" << result << endl; //打印转换结果 //********string转换成float********** float m; string float_number = "12345.7"; stringstream oss1; //创建一个流 oss1<<float_number; //将int_number的值传入oss流 oss1>>m; //将oss流中的数据写入m变量 cout << "string(12345.7)--to-->float(12345.7):" << m << endl; //打印转换结果 return 0; } #endif /////////////////3.int和float类型互相转换//////////// #if 0 int main() { //********int转换成float********** int n = 300; float result; stringstream oss; //创建一个流 oss<<n; //将n的值传入oss流 oss>>result; //将oss流中的数据写入result变量 //也可以这么写:result = oss.str();表示将流中的数据转换成string类型 cout << "int(300)--to-->float(300):" << result << endl; //打印转换结果 //********float转换成int********** int m; float float_num = 12345.789; stringstream oss1; //创建一个流 oss1<<float_num; //将int_number的值传入oss流 oss1>>m; //将oss流中的数据写入m变量 cout << "float(12345.789)--to-->int(12345):" << m << endl; //打印转换结果 return 0; } #endif ///////////4.用模板函数ToString(...)实现任意类型到string的转换/////////// #if 0 ////////////////////////////////////////////////////////////////// /// 至于其他类型的互相转换就不一一列举了,其他的都是同样 /// 的道理.接下来写个模板实现各种类型的数值到string类型的转 /// 换. ////////////////////////////////////////////////////////////////// //用模板将各种数值转化成string类型 template<class T> void ToString(string &result, const T &t) { stringstream oss; //创建一个流 oss<<t; //将t的值传入oss流 result = oss.str(); //获取转化后的字符串并写入result //也可以写成oss>>result; } int main() { int int_num = 100; float float_num = 99.876; double double_num = 87.89; string int_str; string float_str; string double_str; ToString(int_str, int_num); //整数类型转换成string类型 ToString(float_str, float_num); //浮点数类型转换成string类型 ToString(double_str, double_num); //双精度类型转换成string类型 //打印结果 cout << int_str << endl; cout << float_str << endl; cout << double_str << endl; return 0; } #endif //------>可以看出stringstream类可以很方便的实现类型之间的安全转换
相关文章推荐
- eclipse主题颜色配置
- C++实现目录下所有文件添加后缀名
- Oracle 11g RAC 基础知识详解
- 51CTO学院三周年—我在学院不得不说的收获
- PHP Cookie处理函数
- iOS 4种方法获取文件名
- pyqt 动态增加 下拉框 标签 显示不全
- maven项目下tomcat直接启动不了(LifecycleException)。报错如下截图
- UVA 11512
- SpringMVC Controller 返回值的可选类型
- <AsyncTask> 查看网页源代码
- Transact-SQL 程序设计(二) --------自定义函数
- MN的MNISTdemo感悟
- 设置ViewPager禁止滑动
- python之路 模块,序列化,迭代器,生成器
- Qt-4.7.1编译全过程
- maven项目Dao层优化
- Codeforces Round #356 (Div. 2) Tutorial
- httpd cgi程序配制+.py .cgi执行
- iOS 【UIKit-UIScrollView 无法滚动的原因/两种情况下的弹簧效果】