Bagaimana untuk Membaca Semua Bait Fail ke dalam Tatasusunan Aksara dalam C?

Mary-Kate Olsen
Lepaskan: 2024-11-01 23:09:31
asal
839 orang telah melayarinya

How to Read All File Bytes into a Character Array in C  ?

Mengambil Semua Bait Fail ke dalam Tatasusunan Aksara dalam C

Soalan ini bertujuan untuk memahami cara membaca kandungan fail menjadi aksara tatasusunan, memintas had getline().

Penyelesaian:

Daripada menggunakan getline(), pertimbangkan untuk melaksanakan ifstream::read() untuk membaca fail sebagai aliran bait. Langkah berikut menggariskan proses:

  1. Membuka Fail:
<code class="cpp">std::ifstream infile("C:\MyFile.csv"); // consider std::ios_base::binary for binary reads</code>
Salin selepas log masuk
  1. Menentukan 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
  1. Pencegahan Limpahan Penampan:
<code class="cpp">if (length > sizeof(buffer)) {
    length = sizeof(buffer);
}</code>
Salin selepas log masuk
  1. Membaca Fail:
<code class="cpp">infile.read(buffer, length);</code>
Salin selepas log masuk

Nota Tambahan:

  • Menggunakan seekg() dan tellg() untuk menentukan saiz fail tidak dijamin tepat tetapi biasanya berfungsi.
  • Membuka fail dalam mod bukan binari boleh mengakibatkan terjemahan aksara yang mempengaruhi saiz penimbal yang terhasil.
  • Untuk bacaan fail satu tangkapan, jawapan Remy Lebeau mengesyorkan menggunakan std:: vektor dan std::istreambuf_iterator untuk kecekapan yang dipertingkatkan.
  • Sekiranya terdapat bacaan penimbal, pertimbangkan untuk menggunakan gcount() untuk menjejaki bilangan sebenar aksara yang dibaca.

Atas ialah kandungan terperinci Bagaimana untuk Membaca Semua Bait Fail ke dalam Tatasusunan Aksara dalam 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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!