Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk membaca kandungan fail sebagai tatasusunan aksara dalam C menggunakan ifstream::read() dan istreambuf_iterator?
Cara Membaca Kandungan Fail sebagai Tatasusunan Aksara dalam C
Latar Belakang
Soalan ini bertanya bagaimana untuk mengisi penimbal tatasusunan aksara dengan bait fail bernama inputFile. Pengguna telah menghadapi kesukaran dengan pendekatan lain yang dicadangkan yang menggunakan getline() dan bukannya ifstream::read().
Penyelesaian
Terdapat beberapa pendekatan untuk menangani perkara ini tugasan:
Menggunakan ifstream::read()
Kaedah ini melibatkan:
Kod Contoh:
<code class="cpp">// Open file in binary mode std::ifstream infile("C:\MyFile.csv", std::ios_base::binary); // Get file length infile.seekg(0, std::ios::end); size_t length = infile.tellg(); infile.seekg(0, std::ios::beg); // Read file infile.read(buffer, length);</code>
Menggunakan istreambuf_iterator
Pendekatan ini lebih moden dan menggunakan iterator untuk membaca fail:
Kod Contoh:
<code class="cpp">// Create iterators std::istreambuf_iterator<char> begin(infile); std::istreambuf_iterator<char> end; // Create vector std::vector<char> contents(begin, end); // Copy vector to array std::copy(contents.begin(), contents.end(), buffer);</code>
Pertimbangan
Atas ialah kandungan terperinci Bagaimana untuk membaca kandungan fail sebagai tatasusunan aksara dalam C menggunakan ifstream::read() dan istreambuf_iterator?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!