Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Membaca Data dari cin Sehingga EOF dalam C Tanpa Gelung Eksplisit?

Bagaimanakah Saya Boleh Membaca Data dari cin Sehingga EOF dalam C Tanpa Gelung Eksplisit?

Barbara Streisand
Barbara Streisandasal
2024-11-18 04:18:03652semak imbas

How Can I Read Data from cin Until EOF in C   Without Explicit Loops?

Membaca Data dari Cin Sehingga EOF dalam C tanpa Gelung

Mencari kaedah yang berkesan untuk membaca data daripada input pengguna sehingga akhir fail ( EOF) ialah tugas biasa dalam pengaturcaraan C. Walau bagaimanapun, merentasi data tanpa menggunakan gelung memberikan cabarannya.

Satu pendekatan yang berpotensi ialah menggunakan cin.get( input, ' ' ). Walau bagaimanapun, kaedah ini mungkin tidak sesuai kerana ia menamatkan bacaan pada kejadian pertama sama ada EOF atau aksara nol (' '), yang mana ditemui lebih awal.

Untuk pendekatan yang komprehensif dan boleh dipercayai, menggunakan gelung adalah disyorkan. Fungsi std::getline() menawarkan penyelesaian yang mudah:

std::string line;
while (std::getline(std::cin, line))
{
    std::cout << line << std::endl;
}

Fungsi getline() membaca input baris demi baris, tamat pada baris baharu secara lalai. Anda boleh menentukan aksara penamatan alternatif, tetapi menyasarkan EOF secara langsung tidak boleh dilaksanakan kerana ia tidak mewakili aksara itu sendiri.

Dengan menggunakan gelung dan getline() seiring, anda boleh membaca data secara berkesan daripada input standard sehingga EOF ditemui. Pendekatan ini menyediakan mekanisme yang mudah dan boleh dipercayai untuk memproses jumlah data yang sewenang-wenangnya tanpa memerlukan logik tambahan untuk menyemak EOF.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membaca Data dari cin Sehingga EOF dalam C Tanpa Gelung Eksplisit?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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