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 :
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)); }
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), {}); }
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!