Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Menyalin atau Mengubah Suai Fail Binari dengan Cekap dalam C?

Bagaimanakah Saya Boleh Menyalin atau Mengubah Suai Fail Binari dengan Cekap dalam C?

Patricia Arquette
Lepaskan: 2024-12-29 03:41:14
asal
644 orang telah melayarinya

How Can I Efficiently Copy or Modify Binary Files in C  ?

Input/Output Fail Perduaan

Dalam C , membaca dan menulis fail binari melibatkan penggunaan mekanisme input/output fail khusus untuk mengendalikan data binari. Walaupun kod yang disediakan cuba untuk mencapai ini, ia menghadapi masalah di mana penimbal output hanya menangkap sebahagian terhad kandungan fail.

C Penyelesaian:

Untuk pendekatan yang lebih cekap dan patuh C, pertimbangkan untuk menggunakan coretan kod berikut:

#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)
    );
}
Salin selepas log masuk

Dalam kod yang disemak ini, std::fungsi copy digunakan untuk memindahkan kandungan fail binari dengan cekap daripada input strim input kepada output strim output. Pendekatan ini memastikan bahawa keseluruhan kandungan Final.gif disalin dengan tepat ke myfile.gif.

Penyelesaian Penimbalan Alternatif:

Jika anda memerlukan akses kepada data dalam penimbal untuk pengubahsuaian, anda boleh menggunakan kod berikut:

#include <fstream>
#include <iterator>
#include <vector>

int main() {
    std::ifstream input("C:\Final.gif", std::ios::binary);

    // Copies entire file into a buffer
    std::vector<unsigned char> buffer(std::istreambuf_iterator<char>(input), {});
}
Salin selepas log masuk

Di sini, keseluruhan kandungan fail input dibaca ke dalam penimbal penimbal vektor, membolehkan pengubahsuaian pada data binari sebelum operasi output yang berpotensi.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyalin atau Mengubah Suai Fail Binari dengan Cekap 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