Maison > développement back-end > C++ > Comment lire et écrire correctement des fichiers binaires entiers en C ?

Comment lire et écrire correctement des fichiers binaires entiers en C ?

Linda Hamilton
Libérer: 2025-01-03 14:25:40
original
501 Les gens l'ont consulté

How to Correctly Read and Write Entire Binary Files in C  ?

Lecture et écriture de fichiers binaires

Lorsque vous essayez de lire un fichier binaire dans un tampon et ensuite d'écrire le tampon dans un autre fichier, il est Il est crucial d’utiliser l’approche appropriée. Le fragment de code fourni rencontre une erreur où le tampon ne capture que quelques caractères ASCII de la première ligne du fichier et ne parvient pas à récupérer l'intégralité de son contenu.

Pour résoudre ce problème, deux approches sont recommandées :

  1. Utilisation de l'approche C :

    Utilisation du flux de C capacités d'itération, le code suivant copie efficacement le contenu du fichier binaire d'entrée dans le fichier de sortie :

    #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));
    }
    Copier après la connexion
  2. Utilisation d'un tampon pour la modification :

    Si les données doivent être stockées dans un tampon à des fins de modification, l'approche suivante peut être employé :

    #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), {});
    }
    Copier après la connexion

En mettant en œuvre ces techniques, le code lira avec succès l'intégralité du fichier binaire dans un tampon ou directement dans le fichier de sortie, garantissant un transfert et une manipulation précis des données.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal