第八篇:使用字串流物件進行格式轉換

穆晨發表於2017-01-26

前言

       字串流物件有個很實用的功能就是格式轉換。比如可以將整數型別的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 }

       執行結果:

       

相關文章