首页 > 代码库 > 第八篇:使用字符串流对象进行格式转换

第八篇:使用字符串流对象进行格式转换

前言

       字符串流对象有个很实用的功能就是格式转换。比如可以将整数类型的123转换成字符串格式的123,或者反过来。那么具体又是如何实现的?且看下文。

实现思路

       对于整数转换成字符串格式,可设s是一个空的字符串流对象,” 整型变量 “存放目标整数。则当执行" s << 整型变量 "后,该整数将转成字符串格式并存进流中。随后代码中使用" s.str() "即可获取到该整数的字符串格式。对于字符串转换成整数格式,亦可设s是一个空的字符串流对象,” 整型变量 “存放转换结果。可先将目标字符串存放进字符串流对象,然后执行" s >> 整型变量 “。此后该整型变量既是目标字符串的整数格式。

示例代码1:整数格式 -> 字符串格式

 1 #include <iostream> 2 // 使用字符串流对象记得包含此头文件 3 #include <sstream> 4    5 using namespace std; 6    7 int main() 8 { 9      int num;10      cout << "请输入要转换的整数: " << endl;11      cin >> num;12  13      stringstream s;14      s << num;15      cout << "转换完毕..." << endl << endl;16  17      cout << "整数格式: " << num << endl;18      cout << "字符串格式: " << s.str() << endl;19  20      return 0;21 }

       运行结果:

  技术分享

示例代码2:字符串格式 -> 整数格式

 1 #include <iostream> 2 // 使用字符串流对象记得包含此头文件 3 #include <sstream> 4   5 using namespace std; 6   7 int main() 8 { 9     string st;10     cout << "请输入要转换的字符串: " << endl;11     cin >> st;12 13     stringstream s(st);14     int num;15     s >> num;16     cout << "转换完毕..." << endl << endl;17 18     cout << "字符串格式: " << s.str() << endl;19     cout << "整数格式: " << num << endl;20 21     return 0;22 }

       运行结果:

       技术分享

第八篇:使用字符串流对象进行格式转换