C++ cin 流輸入的返回值


感覺今天發現一個比較好的問題
所以就
又忍不住寫博客了。。。

while(cin>>n)

這個語句肯定經常看到把
但是
為什么可以用while來判斷呢
難道cin>>n的返回值是bool 類型?
這時候,看源碼 的 重要性就體現出來了
在ios里面有

    operator void *() const {
        if(state&(badbit|failbit) )
            return 0;
        return (void* )this;
    }

這樣一段代碼
再來看這樣一段文字
在這里插入圖片描述
所以說 invalid state 時 返回值為0,否則是(void *)首地址
這樣就可以用while來判斷了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM