拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
程式碼會一直循環測試輸入流是否正常,直到輸入流到達檔案結尾,或輸入流出錯。
while括號裡的表達式不是應該結果是bool型嗎?為何可以是輸入語句呢?
while括号中的表达式的确是bool类型,所以你可以纠结一下 `cin >> n`这个表达式的返回值到底是什么(`>>`正常读取,返回的是cin的地址值;读入错误时,则返回0)
Q: 那它又如何跳出呢?難道輸入的數是0才跳出循環?
跳出循环的两种输入方式: windows下 `ctrl+z` linux下 `ctrl+d`
恩。 。 。 。其實我也是一知半解,但我比較糾結的是你所說的“查不到”,如果你是真的查不到答案,我想分享一下我的體驗。 首先呢,對於像我這樣的資深小白來說,一直堅信著:只有想不到的小白題,沒有查不到的答案。 然後咧,就有啥查啥唄,比如這題,你可以隨意擺渡一下 while(cin>>n),就會發現一堆你想要的答案(eg.啥時候能跳出循環);再然後,像你這樣已經不只是糾結於什麼時候能停,而考慮起關於表達式值的問題,完全可以去查while和cin >> n的回傳值,看看到底暗藏什麼玄機。 小白伸手黨很容易做的,不過顯然不如自己一層一層抽絲剝繭地去追溯一個問題來得有趣(這個話是用來鼓勵我自己的XD)
while(cin>>n)
while
cin >> n
另分享一個挺棒的答案:cin,cout,以及其回傳值
樓上正解
程式碼會一直循環測試輸入流是否正常,直到輸入流到達檔案結尾,或輸入流出錯。
while括號裡的表達式不是應該結果是bool型嗎?為何可以是輸入語句呢?
Q: 那它又如何跳出呢?難道輸入的數是0才跳出循環?
恩。 。 。 。其實我也是一知半解,但我比較糾結的是你所說的“查不到”,如果你是真的查不到答案,我想分享一下我的體驗。
首先呢,對於像我這樣的資深小白來說,一直堅信著:只有想不到的小白題,沒有查不到的答案。
然後咧,就有啥查啥唄,比如這題,你可以隨意擺渡一下
while(cin>>n)
,就會發現一堆你想要的答案(eg.啥時候能跳出循環);再然後,像你這樣已經不只是糾結於什麼時候能停,而考慮起關於表達式值的問題,完全可以去查
while
和cin >> n
的回傳值,看看到底暗藏什麼玄機。小白伸手黨很容易做的,不過顯然不如自己一層一層抽絲剝繭地去追溯一個問題來得有趣(這個話是用來鼓勵我自己的XD)
另分享一個挺棒的答案:cin,cout,以及其回傳值
樓上正解