返回列表 發帖

字串串流 (二)

試利用 stringstream 型別,來進行變數型態的轉換,譬如 int 轉 float、double轉 string 等。
stringstream 物件再重複使用前,必須先做初始化 (清空) 的動作。
我們可透過 <typeinfo> 標頭檔所提供的 typeid() 接 name() 函式,查看變數的型態。

  1. #include<iostream>
  2. #include<cstdlib>
  3. #include<sstream>
  4. #include<typeinfo>
  5. using namespace std;
  6. int main()
  7. {
  8.     stringstream ss;
  9.     int a=123;
  10.     double b=456.789;
  11.     float c;
  12.     string d;
  13.    
  14.     ss<<a;
  15.     ss>>c;
  16.     cout<<c<<endl;
  17.      
  18.     ss.str("");   //重複使用前需初始化
  19.     ss.clear();
  20.    
  21.     ss<<b;
  22.     ss>>d;
  23.     cout<<d<<endl;
  24.    
  25.     cout<<typeid(a).name()<<endl;
  26.     cout<<typeid(b).name()<<endl;
  27.     cout<<typeid(c).name()<<endl;
  28.     cout<<typeid(d).name()<<endl;
  29.    
  30.     system("pause");     
  31.     return 0;   
  32. }
複製代碼

本帖最後由 陳曜誌 於 2024-8-8 18:52 編輯
  1. #include<iostream>
  2. #include<cstdlib>
  3. #include<sstream>
  4. #include<typeinfo>
  5. using namespace std;

  6. int main()
  7. {
  8.     stringstream ss; // 建立字串串流物件
  9.     int a = 123; // 整數變數
  10.     double b = 456.789; // 雙精度浮點數變數
  11.     float c; // 單精度浮點數變數
  12.     string d; // 字串變數
  13.    
  14.     // 將整數 a 輸入到字串串流中
  15.     ss << a;
  16.     ss >> c;
  17.     cout << c << endl;
  18.      
  19.     // 清空字串串流以便重複使用
  20.     ss.str("");   
  21.     ss.clear();
  22.    
  23.     ss << b;
  24.     ss >> d;
  25.     cout << d << endl;
  26.    
  27.     // 輸出變數的類型
  28.     cout << typeid(a).name() << endl; // 輸出整數 a 的類型
  29.     cout << typeid(b).name() << endl; // 輸出雙精度浮點數 b 的類型
  30.     cout << typeid(c).name() << endl; // 輸出浮點數 c 的類型
  31.     cout << typeid(d).name() << endl; // 輸出字串 d 的類型
  32.    
  33.     system("pause"); // 暫停系統以查看結果
  34.     return 0;   
  35. }
複製代碼

TOP

返回列表