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