原文:關於if (!cin)以及while (cin >> word)

首先注意: 每一個輸入 輸出 對象就代表一個輸入 輸出 流 輸入 輸出 對象中的流狀態成員標記了輸入 輸出 流當前的狀況,當eofbit badbit failbit三個標記位均為 時表示流狀態正常 一但某個或幾個標記位被設置,表示對象的流狀態出現相應狀況,流將對后面的輸入 輸出 關閉,直到標記位被清除 只有在流狀態良好的情況下,if或者while對該輸入 輸出 對象的判斷才能是ture。 接下來 ...

2016-10-09 09:14 0 1523 推薦指數:

查看詳情

while(cin>>a)的原理

>>運算符返回的是流對象的引用,那么題目就變成了 while(cin); 這好像有點奇怪,上網找了答案 這是地址點擊打開鏈接 以下是復制過來的內容,不是本人原創: 今天看書的時候看到代碼while(cin>>val),忽然就在想這樣寫的合法性是如何判定 ...

Fri Mar 07 15:51:00 CST 2014 0 3149
為什么可以用while(cin)?

如果你把一個basic_ios類的對象(cin就是)放到if語句的括號里,它就會被轉換成void*型。如果輸入失敗的話,就會得到一個空指針(也就是0),那么if語句就不能通過。 首先輸出個0.之后輸入X,輸出X;當輸入ctrl+d時,沒有輸出,結束 ...

Wed Jul 25 04:15:00 CST 2012 0 3097
while (cin>>str)退出死循環

今天在練習的時候突然發現了這個問題,百度之感覺還挺常見的,故記之! 解釋有: 在 C++Primer 中,作者經常使用 while(cin>>word) 類似的語法,但是如何結束,可能會出現疑惑。有的時候需要兩次快捷鍵才能結束循環,有的時候卻只需要一次循環 ...

Fri Mar 11 02:15:00 CST 2016 0 1964
while(std::cin>>val)怎么結束的思考

參考: https://blog.csdn.net/u014182411/article/details/62053816/ --------------------------------------------------------------- cin是C++編程語言中的標准輸入流對象 ...

Sat Oct 27 03:58:00 CST 2018 0 834
while(scanf("%d",&n)!=EOF)與while(cin>>n)

我們知道scanf函數是C語言里面的,其返回值是,被輸入函數成功賦值的變量個數。針對於int counts = scanf("%d",&n);來說如果賦值成功那么其返回值為1,即counts的值也是1。例如下面這個例子: while(條件語句);如條件語句為真 ...

Thu Nov 12 19:42:00 CST 2015 8 7757
while(scanf("%d",&n)!=EOF) / while(cin>>n)終止問題

問題的發現:(想要看干貨可以直接跳過這段) 我最近剛了解到關於棧的用法,於是按照參考書尋找代碼,並把它敲到電腦上。編譯運行代碼后發現無法終止,在網上查找各種資料,總結如下。 因為我的電腦是W ...

Wed Aug 07 08:42:00 CST 2019 0 481
cin的優化

  雖然C++有cin函數,但看別人的程序,大多數人都用C的scanf來讀入,其實是為了加快讀寫速度,難道C++還不如C嗎!?其實cin效率之所以低,不是比C低級,是因為先把要輸出的東西存入緩沖區,再輸出,導致效率降低,而且是C++為了兼容C而采取的保守措施。   先講一個cin中的函數 ...

Mon Oct 03 23:04:00 CST 2016 1 3743
cin和getline()

在做在線編程的時候,好多人都是用到 getline()函數,而不是用的cin。剛開始還覺得都可以吧。直到遇到了輸入有空格的情況。 那么我們這里就來說說 cin和getline() 的區別。 1、cin>> 用法1:最基本,也是最常用的用法,輸入一個 ...

Tue Jun 13 00:36:00 CST 2017 0 2884
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM