>`)? " />
Cara Pengesanan Akhir Fail Berbeza dalam Operasi ifstream
Apabila bekerja dengan fail menggunakan ifstream, adalah penting untuk memahami cara fungsi eof() menentukan hujung fail. Fungsi ini memainkan peranan penting dalam mengendalikan kandungan fail dengan berkesan.
Dalam kod yang disediakan coretan, gelung while(!inf.eof()) cuba membaca aksara daripada fail "ex.txt" Walau bagaimanapun, selepas mencapai penghujung fail, fungsi get() menambah aksara tambahan dan memaparkan "-1 ."
Untuk menangani perkara ini, adalah penting untuk mengetahui bahawa get() mengembalikan nilai char dan nilai pulangannya sepadan dengan aksara seterusnya dalam fail. Apabila penghujung fail dicapai, get() mengembalikan std::char_traits::eof(), yang biasanya diwakili sebagai "-1." Oleh itu, jika gelung berterusan selepas mencapai penghujung fail, get() mengembalikan "-1" setiap kali.
Sebaliknya, pernyataan inf >> c dalam gelung kedua menggunakan operator pengekstrakan untuk membaca aksara daripada fail ini cuba membaca ke dalam pembolehubah c dan kembali rujukan kepada inf. Jika operasi baca gagal, inf dinilai kepada palsu.
Oleh itu, gelung menggunakan inf >> c berjaya ditamatkan apabila fail tamat kerana operasi baca gagal. Dalam kes ini, inf menjadi palsu dan keluar dari gelung.
Ringkasnya, memahami cara berbeza eof() mempengaruhi get() dan >> pengendali adalah penting untuk bekerja dengan fail dengan cekap dalam ifstream. Fungsi get() mengembalikan "eof" untuk menunjukkan penghujung fail, manakala >> menggunakan pendekatan yang lebih intuitif apabila pembacaan yang gagal mengakibatkan penilaian inf kepada palsu dan keluar dari gelung.
Atas ialah kandungan terperinci Mengapakah Fungsi `eof()` `ifstream` Berperilaku Berbeza dengan `get()` dan Operator Pengekstrakan (`>>`)?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!