本文實(shí)例講述了C++實(shí)現(xiàn)raw_input的方法,分享給大家供大家參考。具體方法分析如下:
用慣了Python,現(xiàn)在寫(xiě)C++的代碼感覺(jué)有點(diǎn)不太順暢。今天就來(lái)實(shí)例演示一下C++實(shí)現(xiàn)raw_input的方法。
用過(guò)Python的朋友知道,Python中有個(gè)raw_input,可以如下使用:
1
|
print raw_input ( "Input a number : " ) |
一個(gè)函數(shù)內(nèi)既有輸入提示,又有返回值,用起來(lái)著實(shí)方便。可現(xiàn)在的問(wèn)題是在C++中,我也想這么干,怎么辦?其實(shí),寫(xiě)一個(gè)函數(shù)也可以輕松實(shí)現(xiàn)的,比如:
1
2
3
4
5
6
7
|
int raw_input( const char * tips) { cout<<tips; int a; cin>>a; return a; } |
這個(gè)是實(shí)現(xiàn)整型數(shù)據(jù)輸入的函數(shù):首先通過(guò)cout輸出提示內(nèi)容,比如“Input number :”之類的;接下來(lái)定義一個(gè)整型變量a,并通過(guò)cin獲得數(shù)據(jù)的值;最后返回整型數(shù)據(jù)。可如下調(diào)用:
1
|
cout<<raw_input( "Input number : " )<<endl; |
功能是實(shí)現(xiàn)了,而且如果把類型改為string,和Python的就相同了。可我還是嫌這個(gè)不靈活:每個(gè)類型我都要寫(xiě)一遍,感覺(jué)很不爽,我想要一個(gè)比Python那個(gè)用起來(lái)更靈活的函數(shù)。標(biāo)準(zhǔn)庫(kù)沒(méi)有,就自己寫(xiě)吧。
這個(gè)要借助C++的模板來(lái)實(shí)現(xiàn),示例如下:
1
2
3
4
5
6
7
8
|
template < class T1, class T2> T1 raw_input2(T2 tips) { T1 a; cout<<tips; cin>>a; return a; } |
這個(gè)和上面的原理一樣,這里就不解釋了。調(diào)用如下:
1
|
cout<<raw_input2<string,string>( "Input string : " )<<endl; |
這樣是不是就方便多了。
希望本文所述對(duì)大家的C++程序設(shè)計(jì)有所幫助。