第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

if(cin >> x)-為什么要使用該條件?

if(cin >> x)-為什么要使用該條件?

C++
慕標琳琳 2019-11-12 13:10:16
整個夏天,我一直在使用“加速C ++”來學習C ++,但有一個我似乎不太了解的概念。為什么是int x;if (cin >> x){}相當于cin >> x;if (cin){}通過查看代碼,在我看來我們正在使用cin作為變量。但是,我認為這是一個功能。當x的值等于我們在鍵盤上輸入的值時,為什么還要以這種方式使用cin?
查看完整描述

3 回答

?
阿波羅的戰(zhàn)車

TA貢獻1862條經(jīng)驗 獲得超6個贊

cin是istream代表標準輸入流的類的對象。它對應于cstdio流stdin。>>流的運算符重載返回對同一流的引用??梢酝ㄟ^轉(zhuǎn)換運算符在布爾條件下將流本身評估為true或false。


cin提供格式化的流提取。手術(shù) cin >> x;


如果輸入非數(shù)字值,則“ x”為整數(shù)的位置將失敗。所以:


if(cin>>x)

false如果您輸入字母而不是數(shù)字,將返回。


有關使用C ++ I / O的技巧的本網(wǎng)站也將為您提供幫助。


查看完整回答
反對 回復 2019-11-12
?
至尊寶的傳說

TA貢獻1789條經(jīng)驗 獲得超10個贊

注意:事實回答四年后才更新,以解決C ++ 98/03和C ++ 11(及更高版本)。


std::cin是的實例std::istream。該類提供了兩個與此問題有關的重載。

  • operator >>如果可能,將數(shù)據(jù)從流中讀取到目標變量中。如果流的立即內(nèi)容不能轉(zhuǎn)換為目標變量的類型,則將該流標記為無效,并且保持目標變量不變。無論操作成功與否,返回值都是對流的引用。

  • 任一operator void*()(預C ++ 11),其將流參照void*指針,或explicit operator bool()(C ++ 11),其將流參考一個布爾值。true如果流有效,此轉(zhuǎn)換的結(jié)果是非空指針(C ++ 11之前)或(C ++ 11),但空指針(C ++ 11之前)或false(C ++ 11) )(如果流無效)。

一條if語句需要布爾值,整數(shù)或指針作為要測試的數(shù)量。的結(jié)果std::cin >> x是對的引用istream,而上述都不是。但是,該類istream確實具有那些轉(zhuǎn)換運算符,可用于將istream引用轉(zhuǎn)換為if語句中可用的內(nèi)容。它是該語言用于if測試的特定于版本的轉(zhuǎn)換運算符。由于讀取if失敗會將流標記為無效,因此如果讀取無效,則測試將失敗。

operator void*在C ++ 11之前使用更復雜的轉(zhuǎn)換成員的原因是,直到C ++ 11才將現(xiàn)有explicit關鍵字擴展到適用于轉(zhuǎn)換運算符和構(gòu)造函數(shù)。非顯式operator bool()的編程會給程序員帶來太多機會,使他們無法自拔。也有問題operator void*()?!鞍踩紶柍烧Z”本來可以解決,但只需擴展即可explicit完全實現(xiàn)安全布爾成語所要完成的事情,而不必使用很多SFINAE魔術(shù)。


查看完整回答
反對 回復 2019-11-12
?
紅糖糍粑

TA貢獻1815條經(jīng)驗 獲得超6個贊

cin在std名稱空間中是變量。


operator>>返回對的引用cin,因此您可以編寫:cin >> a >> b,而不是cin >> a; cin >> b;


查看完整回答
反對 回復 2019-11-12
  • 3 回答
  • 0 關注
  • 941 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號