回答
的絕頂聰明的笨蛋回答:
int old; std::cin >> old;
可怕的答案:
int old, dummy = (std::cin >> old, 0);
正確答案:old
必須用聲明定義可以通過之前以operator>>
作爲參數。在變量聲明中獲得函數調用的唯一方法是將其放置在上面的初始化表達式中。接受的方式來聲明一個變量,讀投入它是你寫的:
int old;
std::cin >> old;
不錯,適當。 +1。 – 2013-02-16 20:25:35
爲什麼另一個變量? – 6502 2013-02-16 20:32:50
聰明的屁股答案,哈哈。謝謝,這是資料豐富的 – 2013-02-16 20:54:40
你可以...用
int old = (std::cin >> old, old);
但你真的不應該這樣做
啊,好點!聰明。 – 2013-02-16 20:55:30
@ 6502爲什麼我們不應該做你說的? – Mohammasd 2017-07-19 07:25:03
使用功能:
int inputdata()
{
int data;
std::cin >> data;
return data;
}
然後:
int a=inputdata();
對於數據本身:
int inputdata()
{
static bool isDataDeclared=false;
if (isDataDeclared==true)
{
goto read_data;
}
else
{
isDataDeclared=true;
}
static int data=inputdata();
return data;
read_data:
std::cin >> data;
return data;
}
但是,現在呢也是用'data'來做! – 2013-02-16 20:56:05
@JosephMansfield我認爲,在原始問題中,有時您只想將變量初始化爲用戶輸入值,而不是系統默認值,未定義值或您自己拒絕定義的值。儘管爲了數據的目的,我覺得沒有必要對它做「相同」操作,因爲它只存在於函數的本地範圍內,用於所有三行執行時間,並且可能在標記函數時作爲內聯,它甚至可能完全被優化。 'int old = inputdata();'可能最終等同於'int old; std :: cin >> old;'如果發生這種情況。 – thegreatjedi 2015-12-22 07:46:07
也許不是int
,但對於自己的類型:
class MyType {
int value;
public:
MyType(istream& is) {
is >> *this;
}
friend istream& operator>>(istream& is, MyType& object);
};
istream& operator>>(istream& is, MyType& object) {
return is >> object.value;
}
然後你可以用istream
傳遞給構造函數創建類型:
int main() {
istringstream iss("42");
MyType object(iss);
}
- 1. 是否可以在聲明後初始化最終變量..?
- 2. 我們可以聲明和初始化一個成員變量在同一類
- 3. 變量初始化並聲明後可能尚未初始化
- 4. 初始化靜態final變量聲明與初始化在Application.OnCreate()
- 5. scala - 未初始化的變量聲明
- 6. 聯盟是否可以在聲明中初始化?
- 7. C++:變量聲明初始化順序
- 8. 聲明和初始化全局變量
- 9. Maya MEL變量聲明和初始化
- 10. 聲明和初始化結構變量
- 11. 是否可以用lambda初始化靜態變量?
- 12. 是否可以聲明一個全局變量並在函數中初始化它? c#
- 13. 在全局範圍聲明的thread_local變量是否已初始化?
- 14. 初始化變量,同時聲明函數
- 15. 初始化在聲明
- 16. 是否可以使用&&並在同一行上設置變量?
- 17. 在同一行上初始化兩個變量
- 18. 初始化變量的初始化是否正確?
- 19. 是否可以在Kotlin的while條件體中初始化一個變量?
- 20. 是否可以使用search.luceneSearch與以前聲明的變量?
- 21. 指針聲明,但未初始化的變量用C
- 22. 使用'simpledialog'時聲明的變量未初始化
- 23. 初始化後可以初始化靜態變量嗎?
- 24. 在一行中初始化變量?
- 25. 是否可以強制JavaScript在使用前聲明變量?
- 26. C#是否自動初始化變量
- 27. PHP初始化變量在__construct()對聲明
- 28. 在構造函數或聲明中初始化變量
- 29. 在XLST中聲明和初始化變量
- 30. Vb.net聲明和初始化
也許'int old; std :: cin >> old;'? – 2013-02-16 20:23:00
不是,仍然是重複的。 http://stackoverflow.com/questions/12279601/are-there-any-tricks-to-use-stdcin-to-initialize-a-const-variable – djechlin 2013-02-18 00:30:43
我重新命名這個古老和尷尬的問題,因爲它已經得到最近很受關注。 – 2017-04-22 01:29:03