C++實現raw_input

來源:互聯網
上載者:User

用慣了Python,現在寫C++的代碼感覺有點不太順暢。這不,今天就和這小小的raw_input較上勁了……

用過Python的朋友知道,Python中有個raw_input,可以如下使用:

print raw_input("Input
a number : ")

一個函數內既有輸入提示,又有傳回值,用起來著實方便。可現在的問題是在C++中,我也想這麼幹,怎麼辦?其實,寫一個函數也可以輕鬆實現的,比如:

int raw_input(const char* tips)
{
cout<<tips;
int a;
cin>>a;
return a;
}

這個是實現整型資料輸入的函數:首先通過cout輸出提示內容,比如“Input
number :”之類的;接下來定義一個整型變數a,並通過cin獲得資料的值;最後返回整型資料。可如下調用:

cout<<raw_input("Input number : ")<<endl;

功能是實現了,而且如果把類型改為string,和Python的就相同了。可我還是嫌這個不靈活:每個類型我都要寫一遍,感覺很不爽,我想要一個比Python那個用起來更靈活的函數。標準庫沒有,就自己寫吧……

這個要藉助C++的模板來實現,樣本如下:

template <class T1,class T2>
T1 raw_input2(T2 tips)
{
T1 a;
cout<<tips;
cin>>a;
return a;
}

這個和上面的原理一樣,這裡就不解釋了。調用如下:

cout<<raw_input2<string,string>("Input string : ")<<endl;

哈哈,是不是方便多了。

好,就這些了,希望對你有協助。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.