為何下面的小程式在輸入字元 a 回車後會無限迴圈?

時間 2021-06-03 07:24:17

1樓:邱昊宇

std::cin

>>i;

因為這一句失敗了,沒有消耗輸入流中的內容。

A: 你好,我要從輸入流中取乙個整數。

B: 不好意思,輸入流裡是個 a,不是整數。

A: 哦哦,此時 i >= 0。好吧,我還要從輸入流中取乙個整數。

B: 不好意思,輸入流裡是個 a,不是整數。

A: 哦哦,此時 i >= 0。好吧,我要從輸入流中取乙個整數。

B: 不好意思,輸入流裡是個 a,不是整數。

A: 哦哦,此時 i >= 0。好吧,我還要從輸入流中取乙個整數。

B: 不好意思,輸入流裡是個 a,不是整數。

...無限迴圈了。

於是,你需要做的事情已經很明顯了:在失敗時,忽略輸入流中的無效內容。比如:

#include

#include

intmain

()std

::cout

<

}while(i

>=0);

}另外關於為什麼無限輸出的是「0」:

C++11 之前:cin >> i 失敗時,不會修改 i 的值C++11 開始:cin >> i 失敗時,會把 i 置零;其中,因為數值範圍過大過小時,會把 i 置為可表示的相應的最大最小值

電瓶在坐墊下面和在踏板下面的電瓶車哪個防盜比較好?

綠源電動車 電動車的電瓶其實放坐墊下面和在踏板下面沒有本質的區別,也不是最重要的。重要的是怎麼更好防盜。綠源電動車,搭配綠源省力防盜中撐鎖。中撐支起,防盜開啟。給你的愛車更好的安全保護。綠源省力防盜中撐鎖是一種將中支撐不防盜鎖相結合的電動車與用鎖具,具有上鎖快,平穩駐車 不易破拆等特點,駐車即鎖車 ...

大佬,Excel排序 如何讓文字在最前, 下面的問題麻煩看一下?

土豆燉熊貓 2.VLookup就能解決,完了篩選查不到的就行,正好有模糊匹配功能。3.按照長度,對所有長度大於3的,left就行了,長度就按照查詢左括號的位置,或者直接把 替換成空白 第2個問題 IF SUM IFERROR FIND A1,B B 0 不在B列 第3個問題 SUBSTITUTE A...

如何證明下面的函式在(0, 2)上不小於0?

LasterCircle 原不等式等價於 當 時,不等式顯然成立。下考慮 的情形 令 則 此時不等式兩邊非負,平方後經整理等價於 令 根據韋達定理,顯然 的零點為兩負一正,可知 在 上單調另一方面,故 時,進而 成立。綜上,原不等式成立,QED 元氣滿滿芙蘭朵露 貼一下班上佬的做法,是我想一天都想不...