Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Membaca dan Menulis Keseluruhan Fail Binari dengan betul dalam C?
Membaca dan Menulis Fail Perduaan
Apabila cuba membaca fail binari ke dalam penimbal dan seterusnya menulis penimbal ke fail lain, ia adalah penting untuk menggunakan pendekatan yang sesuai. Serpihan kod yang disediakan menghadapi ralat apabila penimbal hanya menangkap beberapa aksara ASCII daripada baris pertama fail dan gagal mendapatkan keseluruhan kandungannya.
Untuk menyelesaikan isu ini, terdapat dua pendekatan yang disyorkan:
Menggunakan C Pendekatan:
Menggunakan keupayaan lelaran aliran C, kod berikut menyalin kandungan fail binari input ke dalam fail output dengan berkesan:
#include <fstream> #include <iterator> #include <algorithm> int main() { std::ifstream input("C:\Final.gif", std::ios::binary); std::ofstream output("C:\myfile.gif", std::ios::binary); std::copy( std::istreambuf_iterator<char>(input), std::istreambuf_iterator<char>(), std::ostreambuf_iterator<char>(output)); }
Menggunakan Penampan untuk Pengubahsuaian:
Jika data perlu disimpan dalam penimbal untuk tujuan pengubahsuaian, pendekatan berikut boleh digunakan:
#include <fstream> #include <iterator> #include <vector> int main() { std::ifstream input("C:\Final.gif", std::ios::binary); // Copies all data into buffer std::vector<unsigned char> buffer(std::istreambuf_iterator<char>(input), {}); }
Dengan melaksanakan teknik ini, kod akan berjaya membaca keseluruhan fail binari ke dalam penimbal atau terus ke dalam fail output, memastikan pemindahan dan manipulasi data yang tepat.
Atas ialah kandungan terperinci Bagaimana untuk Membaca dan Menulis Keseluruhan Fail Binari dengan betul dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!