Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Mencegah Pembacaan Baris Terakhir Pendua Apabila Mencapai EOF dalam Gelung Fail C?

Bagaimana untuk Mencegah Pembacaan Baris Terakhir Pendua Apabila Mencapai EOF dalam Gelung Fail C?

Linda Hamilton
Lepaskan: 2024-12-27 13:01:14
asal
528 orang telah melayarinya

How to Prevent Duplicated Last Line Reads When Reaching EOF in a C   File Loop?

Betulkan untuk Bacaan Baris Terakhir Pendua dalam Gelung EOF

Isu asal timbul apabila membaca daripada fail teks sehingga akhir fail (EOF ) dicapai. Kod C yang disediakan berulang kali merebut baris terakhir dua kali kerana pemprosesan tertunda bagi petunjuk EOF.

Untuk membetulkannya, ikuti rantaian peristiwa:

  1. Dapatkan integer pertama, 10.
  2. Beralih ke 20.
  3. Baca 30 dan teruskan dengan Pemeriksaan EOF.
  4. Memandangkan EOF belum dicapai, gelung diteruskan. Nilai sebelumnya, 30, masih disimpan dalam x.
  5. EOF dikesan, menyebabkan x mengekalkan nilai 30 dan bendera ios::eofbit ditetapkan.
  6. Nilai x adalah output sebagai 30, sepadan dengan lelaran sebelumnya.
  7. Keadaan gelung kini dinilai dan memandangkan EOF telah ditemui, gelung keluar.

Untuk menangani isu ini, pengubahsuaian berikut boleh dibuat pada kod:

while (true) {
    int x;
    iFile >> x;
    if (iFile.eof()) break;
    cerr << x << endl;
}
Salin selepas log masuk

Dalam kod yang disemak ini, gelung berterusan sehingga penghujung fail dicapai , memastikan bahawa baris terakhir hanya dibaca sekali. Ia juga mengendalikan kes fail kosong dengan anggun.

Atas ialah kandungan terperinci Bagaimana untuk Mencegah Pembacaan Baris Terakhir Pendua Apabila Mencapai EOF dalam Gelung Fail C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan