Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Membaca Bait Fail ke dalam Array Char dalam C Tanpa getline()?

Bagaimana untuk Membaca Bait Fail ke dalam Array Char dalam C Tanpa getline()?

Linda Hamilton
Lepaskan: 2024-11-02 22:51:02
asal
913 orang telah melayarinya

How to Read File Bytes into a Char Array in C   Without getline()?

Cara Mengambil Bait Fail ke dalam Array Char dalam C

Untuk membaca bait fail ke dalam array char tanpa menggunakan getline(), pertimbangkan menggunakan ifstream::read(). Ikuti langkah berikut:

  1. Buka Fail:

    <code class="cpp">std::ifstream infile("C:\MyFile.csv");</code>
    Salin selepas log masuk
  2. Dapatkan Panjang Fail:

    <code class="cpp">infile.seekg(0, std::ios::end);
    size_t length = infile.tellg();
    infile.seekg(0, std::ios::beg);</code>
    Salin selepas log masuk
  3. Pastikan Saiz Penampan:

    <code class="cpp">if (length > sizeof (buffer)) {
     length = sizeof (buffer);
    }</code>
    Salin selepas log masuk
  4. Baca Fail:

    <code class="cpp">infile.read(buffer, length);</code>
    Salin selepas log masuk

Nota Tambahan:

  • Membuka fail dalam mod binari (cth., dengan std::ios_base:: binari) disyorkan untuk pengendalian bait yang tepat.
  • Walaupun seekg() dan tellg() umumnya boleh dipercayai, mereka mungkin tidak selalu memberikan saiz fail yang tepat dalam sesetengah kes.
  • Untuk membaca keseluruhan fail dalam satu operasi dan mengendalikan fail besar, menggunakan std::vector dan std::istreambuf_iterator mungkin menawarkan lebih fleksibiliti.

Pendekatan Kemas Kini (2019):

Untuk mengambil kira kemungkinan ralat semasa membaca, pertimbangkan pendekatan berikut:

<code class="cpp">size_t chars_read;

if (!(infile.read(buffer, sizeof(buffer)))) {
    if (!infile.eof()) {
        // Handle error during reading
    }
}

chars_read = infile.gcount(); // Get actual number of bytes read</code>
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Membaca Bait Fail ke dalam Array Char dalam C Tanpa getline()?. 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