Membaca Data daripada Input Standard Hingga Tamat Fail dalam C
Apabila bekerja dengan data terus daripada input pengguna dalam C , ia selalunya wajar untuk membaca semua data sehingga akhir fail (EOF) dicapai. Fungsi cin.get() membenarkan untuk membaca data sehingga aksara tertentu ditemui. Walau bagaimanapun, menggunakan ' ' sebagai aksara penamatan mungkin tidak optimum kerana ia tidak benar-benar mewakili EOF.
Menggunakan Gelung untuk Pengekstrakan Data
Penyelesaian yang paling berkesan untuk membaca data sehingga EOF melibatkan penggunaan gelung. Fungsi std::getline() amat sesuai untuk tujuan ini. Secara lalai, getline() membaca data sehingga aksara baris baharu ditemui. Walau bagaimanapun, aksara penamatan alternatif boleh ditentukan:
std::string line; while (std::getline(std::cin, line)) { std::cout << line << std::endl; }
Dalam contoh ini, getline() membaca setiap baris data sehingga akhir fail dicapai. Gelung ditamatkan apabila getline() gagal membaca sebarang data lagi, menunjukkan bahawa EOF telah ditemui.
Watak Penamatan Alternatif
Walaupun EOF bukan watak yang boleh ditentukan secara langsung, anda boleh menggunakan nilai sentinel untuk mewakili EOF. Sebagai contoh, anda boleh memulakan pembolehubah kepada nilai tertentu dan membaca data sehingga nilai itu ditemui:
const std::string EOF_MARKER = "EOF"; std::string line; while (getline(std::cin, line)) { if (line == EOF_MARKER) break; std::cout << line << std::endl; }
Pendekatan ini membolehkan anda menentukan penunjuk akhir fail anda sendiri, memberikan lebih fleksibiliti dalam anda pemprosesan data.
Atas ialah kandungan terperinci Bagaimana untuk Membaca Semua Data dari Input Standard Sehingga EOF dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!