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

前言

       字符串流对象有个很实用的功能就是格式转换。比如可以将整数类型的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 }

       运行结果:

       

posted @ 2017-01-26 20:23  穆晨  阅读(467)  评论(0编辑  收藏  举报