C 中使用檔案成員函式eof來判斷檔案是否為空時,為什麼要先從檔案中讀乙個字元,再進行判斷?

時間 2021-09-17 04:50:01

1樓:GarfieldKwong

你對eofbit是不是有點誤解。

eofbit 是constexpr所以它的值是不會變的。你可以把它當成是enum,簡單來說就是讓你知道eof是哪個bit。

而至於你的問題可以參考https://

根據這個描述,eof()只在以下情況會返回true:

當前處於流的最後一位,也就是說已經讀取了最後一位,再讀取一位才會返回true。注意引用文字中的"next get()"。你的情況如果沒有什麼get()的行為eof()就不會返回true。

如果你想測試下檔案是否空,通常用peek(), https://

為什麼 C 中使用虛函式時會影響效率?

C 中使用虛函式不會影響效率。你遇到的場景,都沒到需要考慮流水線 friendly 的程度,先把東西寫出來,別想沒用的。 maple 因為查詢虛函式表的時候會有效率損失,可以通過模板的CRTP技術實現靜態繫結,詳見 C CRTP Curiously Recurring Template Patter...

為什麼C 繼承過程中使用訪問說明符和虛函式?

首先,繼承過程中使用訪問說明符主要是為了控制繼承下來的成員的訪問性,比如對類A classA 使用不同的繼承方式,對應的成員訪問性如下 classB publicA classC protectedA classD privateA 至於private 繼承 在 B 類裡面,this 還是可以轉成 ...

c 靜態成員函式為什麼不能為虛函式?

Elvis Wang 其實我覺得這個問題沒有回答的必要,屬於語言概念層面的東西。class A 首先你要搞清楚什麼是普通成員函式。成員函式是類例項相關的,不同的例項物件呼叫成員函式結果一般都不同。比如,上面的fun1是成員函式,你進行呼叫 A a1 new A A a2 new A a1 fun1 ...