總結下在程式設計題中的輸入資料方法
#include <iostream>
using namespace std;
int main(){
int n;
cin>>n;
string s;
// 注意,在VS中這裡會報錯,需要添加 #include<string>
// 因為在iostream裡,對string隻是聲明,并沒有定義。
cin>>s;
// 但是上面碰到空格會進行分段,如果想一次性輸入整行;
// 會截斷回車符。
// 如果沒有讀入字元,将傳回false;
getline(cin,line);
//如果想使用自定義分隔符
getline(cin,line,delime);
while(getline(cin,tt,delime)){
process(tt);
}
// 注意 如果之前有cin,然後再進行getline之前,需要把cin沒有處理的回車符處理掉,
// 也就是在getline之前加個
cin.get();
// 如果想從一個字元串裡讀取資料
#include<sstream>
string src("dasf");
string des;
stringstream ss(src);
getline(ss,des,delime);
}
字元串轉數字,數字轉字元串
#include <iostream>
#include <string>
using namespace std;
// string 裡有 to_string()這個函數 參數可以是int,long,long long,unsigned long,float,double,long double;
int main(){
int a = 1;
long b = 12345;
unsigned int c = 23;
float d = 32.123;
double e = 12.1223;
cout<<to_string(a)<<" "<<to_string(b)<<" "<<to_string(c)<<" "<<to_string(d)<<" "<<to_string(e)<<endl;
return 0;
}
字元串轉數字
兩種方法,第一種就是調用string自帶的stoi,stol,stoul,stoll,stoull,stof,stod,stold等。
第二種就是把字元串轉換成stringstream,然後用>>進行讀取
#include <iostream>
#include <string>
template<typename out_type,typename in_value>
out_type convert(const in_value& t){
stringstream stream;
stream<<t;
out_type result;
stream>>result;
return result;
}
int main(){
string a("1234");
string b("12.45");
cout<<stoi(a)<<" "<<stof(b)<<endl;
stringstream s1(a);
int a1;
s1>>a1;
cout<<a1<<endl;
//注意如果多個字元串進行輸入到stringstream時,先clear一下,把緩沖區清空。
s1.clear();
float a2 = convert<float>(b);
cout<<a2<<endl;
}