Board logo

標題: stringstream 字串串流 (二) [打印本頁]

作者: tonyh    時間: 2020-5-29 19:44     標題: stringstream 字串串流 (二)

試利用 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. }
複製代碼

作者: 黃辰昊    時間: 2020-5-29 20:22

  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.     system("pause");     
  30.     return 0;   
  31. }
複製代碼

作者: 李宇澤    時間: 2020-5-29 20:28

  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. }
複製代碼

作者: 林政瑜    時間: 2020-5-29 20:28

  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. }
複製代碼

作者: 蔡忻霓    時間: 2020-5-29 20:28

  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. }
複製代碼

作者: 孫嘉駿    時間: 2020-5-29 20:29

  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.     ss<<a;
  14.     ss>>c;
  15.     cout<<c<<endl;
  16.     ss.str("");   
  17.     ss.clear();
  18.     ss<<b;
  19.     ss>>d;
  20.     cout<<d<<endl;
  21.     cout<<typeid(a).name()<<endl;
  22.     cout<<typeid(b).name()<<endl;
  23.     cout<<typeid(c).name()<<endl;
  24.     cout<<typeid(d).name()<<endl;
  25.     system("pause");     
  26.     return 0;   
  27. }
複製代碼

作者: 董宸佑    時間: 2020-5-29 20:29

  1. [code]#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=3.141592653589793;
  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. }
複製代碼
[/code]
作者: 黃宥華    時間: 2020-5-29 20:30

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

作者: 陳宥穎    時間: 2020-5-29 20:31

  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.     ss<<a;
  14.     ss>>c;
  15.     cout<<c<<endl;     
  16.     ss.str("");   
  17.     ss.clear();   
  18.     ss<<b;
  19.     ss>>d;
  20.     cout<<d<<endl;
  21.     cout<<typeid(a).name()<<endl;
  22.     cout<<typeid(b).name()<<endl;
  23.     cout<<typeid(c).name()<<endl;
  24.     cout<<typeid(d).name()<<endl;
  25.     system("pause");     
  26.     return 0;   
  27. }
複製代碼





歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://seed.istak.org.tw/) Powered by Discuz! 7.2