標題:
stringstream 字串串流 (二)
[打印本頁]
作者:
tonyh
時間:
2024-6-8 11:02
標題:
stringstream 字串串流 (二)
本帖最後由 tonyh 於 2024-6-8 11:32 編輯
試利用 stringstream 型別,來進行變數型態的轉換,譬如 int 轉 float、double轉 string 等。
stringstream 物件再重複使用前,必須先做初始化 (清空) 的動作。
我們可透過 <typeinfo> 標頭檔所提供的 typeid() 接 name() 函式,查看變數的型態。
型態轉換方法一:stringstream 元件
#include<iostream>
#include<cstdlib>
#include<sstream>
#include<typeinfo>
using namespace std;
int main()
{
stringstream ss;
int a=123;
double b=456.789;
float c;
string d;
ss<<a;
ss>>c;
cout<<c<<endl;
ss.str(""); //重複使用前需初始化
ss.clear();
ss<<b;
ss>>d;
cout<<d<<endl;
cout<<typeid(a).name()<<endl;
cout<<typeid(b).name()<<endl;
cout<<typeid(c).name()<<endl;
cout<<typeid(d).name()<<endl;
system("pause");
return 0;
}
複製代碼
型態轉換方法二:to_string()、stoi()、stof()、stod() 等內建函數
#include<iostream>
#include<cstdlib>
#include<typeinfo>
using namespace std;
int main()
{
int a=123;
string s=to_string(a);
cout<<typeid(s).name()<<endl;
cout<<typeid(stoi(s)).name()<<endl;
cout<<typeid(stof(s)).name()<<endl;
cout<<typeid(stod(s)).name()<<endl;
system("pause");
return 0;
}
複製代碼
作者:
蘇柏菻
時間:
2024-6-8 11:25
#include<iostream>
#include<cstdlib>
#include<sstream>
#include<typeinfo>
using namespace std;
int main()
{
stringstream ss;
int a=123;
double b=456.789;
float c;
string d;
ss<<a;
ss>>c;
cout<<c<<endl;
ss.str(""); //重複使用前需初始化
ss.clear();
ss<<b;
ss>>d;
cout<<d<<endl;
cout<<typeid(a).name()<<endl;
cout<<typeid(b).name()<<endl;
cout<<typeid(c).name()<<endl;
cout<<typeid(d).name()<<endl;
system("pause");
return 0;
}
複製代碼
作者:
邱思博
時間:
2024-6-8 11:27
#include<bits/strc++.h>
using namespace std;
int main()
{
stringstream ss;
int a=123;
double b=456.789;
float c;
string d;
ss<<a;
ss>>c;
cout<<c<<endl;
ss.str("");
ss.clear();
ss<<b;
ss>>d;
cout<<d<<endl;
cout<<typeid(a).name()<<endl;
cout<<typeid(b).name()<<endl;
cout<<typeid(c).name()<<endl;
cout<<typeid(d).name()<<endl;
system("pause");
return 0;
}
複製代碼
作者:
張仲言
時間:
2024-6-8 11:27
#include<iostream>
#include<cstdlib>
#include<sstream>
#include<typeinfo>
using namespace std;
int main()
{
stringstream ss;
int a=123;
double b=456.789;
float c;
string d;
ss<<a;
ss>>c;
cout<<c<<endl;
ss.str(""); //重複使用前需初始化
ss.clear();
ss<<b;
ss>>d;
cout<<d<<endl;
cout<<typeid(a).name()<<endl;
cout<<typeid(b).name()<<endl;
cout<<typeid(c).name()<<endl;
cout<<typeid(d).name()<<endl;
system("pause");
return 0;
}
複製代碼
作者:
邱奕倫
時間:
2024-6-8 11:28
#include<iostream>
#include<cstdlib>
#include<sstream>
#include<typeinfo>
using namespace std;
int main()
{
stringstream ss;
int a=123;
double b=456.789;
float c;
string d;
ss<<a;
ss>>c;
cout<<c<<endl;
ss.str("");
ss.clear();
ss<<b;
ss>>d;
cout<<d<<endl;
cout<<typeid(a).name()<<endl;
cout<<typeid(b).name()<<endl;
cout<<typeid(c).name()<<endl;
cout<<typeid(d).name()<<endl;
system("pause");
return 0;
}
複製代碼
作者:
林宜靜
時間:
2024-6-8 11:29
#include<bits/stdc++.h>
using namespace std;
int main()
{
stringstream ss;
int a=123;
double b=456.789;
float c;
string d;
ss<<a;
ss>>c;
cout<<c<<endl;
ss.str("");
ss.clear();
ss<<b;
ss>>d;
cout<<d<<endl;
cout<<typeid(a).name()<<endl;
cout<<typeid(b).name()<<endl;
cout<<typeid(c).name()<<endl;
cout<<typeid(d).name()<<endl;
system("pause");
return 0;
}
複製代碼
作者:
黃彥綺
時間:
2024-6-8 11:29
#include<iostream>
#include<cstdlib>
#include<sstream>
#include<typeinfo>
using namespace std;
int main()
{
stringstream ss;
int a=123;
double b=456.789;
float c;
string d;
ss<<a;
ss>>c;
cout<<c<<endl;
ss.str("");
ss.clear();
ss<<b;
ss>>d;
cout<<d<<endl;
cout<<typeid(a).name()<<endl;
cout<<typeid(b).name()<<endl;
cout<<typeid(c).name()<<endl;
cout<<typeid(d).name()<<endl;
system("pause");
return 0;
}
複製代碼
作者:
鄧維成
時間:
2024-6-8 11:30
#include<cstdlib>
#include<iostream>
#include<sstream>
#include<typeinfo>
using namespace std;
int main()
{
stringstream ss;
int a=123;
double b=456.789;
float c;
string d;
ss>>a;
ss>>c;
ss.str("");
ss.clear();
ss<<b;
ss<<b;
cout<<d<<endl;
cout<<typeid(a).name()<<endl;
cout<<typeid(b).name()<<endl;
cout<<typeid(c).name()<<endl;
cout<<typeid(d).name()<<endl;
system("pause");
return 0;
}
複製代碼
作者:
陳祈安
時間:
2024-6-8 11:31
#include<iostream>
#include<cstdlib>
#include<sstream>
#include<typeinfo>
using namespace std;
int main()
{
stringstream s;
int a=123;
double b=456.789;
float c;
string d;
s<<a;
s>>c;
cout<<c;
s.str("");
s.clear();
s<<b;
s>>d;
cout<<d;
cout<<typeid(a).name()<<endl;
cout<<typeid(b).name()<<endl;
cout<<typeid(c).name()<<endl;
cout<<typeid(d).name()<<endl;
}
複製代碼
作者:
陳煒翰
時間:
2024-6-8 11:33
#include<iostream>
#include<cstdlib>
#include<sstream>
#include<typeinfo>
using namespace std;
int main()
{
stringstream ss;
int a=123;
double b=456.789;
float c;
string d;
ss<<a;
ss>>c;
cout<<c<<endl;
ss.str(""); //重複使用前需初始化
ss.clear();
ss<<b;
ss>>d;
cout<<d<<endl;
cout<<typeid(a).name()<<endl;
cout<<typeid(b).name()<<endl;
cout<<typeid(c).name()<<endl;
cout<<typeid(d).name()<<endl;
system("pause");
return 0;
}
複製代碼
作者:
陳駿喆
時間:
2024-6-8 11:35
#include<bits/stdc++.h>
using namespace std;
int main()
{
stringstream ss;
int a = 123;
double b=456.789;
float c;
string d;
ss<<a;
ss>>c;
cout<<c<<endl;
ss.str("");
ss.clear();
ss<<b;
ss>>d;
cout<<d<<endl;
cout<<typeid(a).name()<<endl;
cout<<typeid(b).name()<<endl;
cout<<typeid(c).name()<<endl;
cout<<typeid(d).name()<<endl;
return 0;
}
作者:
林宜靜
時間:
2024-6-8 11:40
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a=123;
string s=to_string(a);
cout<<typeid(s).name()<<endl;
cout<<typeid(stoi(s)).name()<<endl;
cout<<typeid(stof(s)).name()<<endl;
cout<<typeid(stod(s)).name()<<endl;
system("pause");
return 0;
}
複製代碼
作者:
張仲言
時間:
2024-6-8 11:42
#include<iostream>
#include<cstdlib>
#include<typeinfo>
using namespace std;
int main()
{
int a=123;
string s=to_string(a);
cout<<typeid(s).name()<<endl;
cout<<typeid(stoi(s)).name()<<endl;
cout<<typeid(stof(s)).name()<<endl;
cout<<typeid(stod(s)).name()<<endl;
system("pause");
return 0;
}
複製代碼
作者:
廖和風
時間:
2024-6-8 11:42
#include<iostream>
#include<cstdlib>
#include<typeinfo>
using namespace std;
int main()
{
int a=123;
string s=to_string(a);
cout<<typeid(s).name()<<endl;
cout<<typeid(stoi(s)).name()<<endl;
cout<<typeid(stof(s)).name()<<endl;
cout<<typeid(stod(s)).name()<<endl;
system("pause");
return 0;
}
複製代碼
作者:
曾湘鋆
時間:
2024-6-8 11:42
#include<iostream>
#include<cstdlib>
#include<typeinfo>
using namespace std;
int main()
{
int a=123;
string s=to_string(a);
cout<<typeid(s).name()<<endl;
cout<<typeid(stoi(s)).name()<<endl;
cout<<typeid(stof(s)).name()<<endl;
cout<<typeid(stod(s)).name()<<endl;
system("pause");
return 0;
}
複製代碼
#include<iostream>
#include<cstdlib>
#include<sstream>
#include<typeinfo>
using namespace std;
int main()
{
stringstream ss;
int a=123;
double b=456.789;
float c;
string d;
ss<<a;
ss>>c;
cout<<c<<endl;
ss.str("");
ss.clear();
ss<<b;
ss>>d;
cout<<d<<endl;
cout<<typeid(a).name()<<endl;
cout<<typeid(b).name()<<endl;
cout<<typeid(c).name()<<endl;
cout<<typeid(d).name()<<endl;
system("pause");
return 0;
}
複製代碼
作者:
邱思博
時間:
2024-6-8 11:42
#include<iostream>
#include<cstdlib>
#include<typeinfo>
using namespace std;
int main()
{
int a=123;
string s=to_string(a);
cout<<typeid(s).name()<<endl;
cout<<typeid(stoi(s)).name()<<endl;
cout<<typeid(stof(s)).name()<<endl;
cout<<typeid(stod(s)).name()<<endl;
system("pause");
return 0;
}
複製代碼
作者:
黃彥綺
時間:
2024-6-8 11:45
#include<iostream>
#include<cstdlib>
#include<typeinfo>
using namespace std;
int main()
{
int a=123;
string s=to_string(a);
cout<<typeid(s).name()<<endl;
cout<<typeid(stoi(s)).name()<<endl;
cout<<typeid(stof(s)).name()<<endl;
cout<<typeid(stod(s)).name()<<endl;
system("pause");
return 0;
}
複製代碼
作者:
吳睿晏
時間:
2024-6-15 08:36
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a=123;
double b=456.789;
float c;
string d;
stringstream ss;
ss<<a;
ss>>c;
cout<<c<<endl;
ss.clear();
ss<<b;
ss>>d;
cout<<d<<endl;
cout<<typeid(a).name()<<endl;
cout<<typeid(b).name()<<endl;
cout<<typeid(c).name()<<endl;
cout<<typeid(d).name()<<endl;
system("pause");
return 0;
}
複製代碼
歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://istak.org.tw/seed/)
Powered by Discuz! 7.2