深入了解ifstream 的eof() 函數
理解ifstream 的eof() 函數的行為可能會令人費解,如提供的程式碼片段所示:
int main() {
std::fstream inf( "ex.txt", std::ios::in ); while( !inf.eof() ) { std::cout << inf.get() << "\n"; } inf.close(); inf.clear(); inf.open( "ex.txt", std::ios::in ); char c; while( inf >> c ) { std::cout << c << "\n"; } return 0;
}
讓我們深入研究解釋提供:
何時真正設定EOF
eof() 函數會偵測讀取操作何時嘗試存取檔案結尾以外的數據,這表示:
第一個循環使用inf.get() 一次檢索一個字元。 c,它將讀取嘗試和分配結合在一個操作中。終止循環。它在嘗試讀取超出末尾的內容之前終止循環
避免-1 的危險以上是為什麼 `ifstream::eof()` 與 `get()` 和提取運算子 (`>>`) 的行為不同?的詳細內容。更多資訊請關注PHP中文網其他相關文章!