6
votes

Pourquoi la méthode de l'écriture () C ++ ofstream modifie mes données brutes?

J'ai une image JPEG dans une mémoire tampon [] en mémoire, tout ce que je dois faire est de l'écrire sur le disque exactement tel quel. En ce moment, je fais cela

ofstream ofs;
ofs.open(filename);
ofs.write(buffer, bufferLen);
ofs.close();


0 commentaires

5 Réponses :


9
votes

Définissez le mode sur binaire lorsque vous ouvrez le fichier:

http://www.cplusplus.com/reference/iostream/ofstream/ofstream/ofstream /


1 commentaires

Merci je savais qu'il devait être quelque chose de simple



9
votes

Vous devez définir le mode fichier sur binaire code> lorsque vous êtes OUVERTURE IT:

std::ofstream file;
file.open("filename.jpg", std::ios_base::out | std::ios_base::binary);


0 commentaires

5
votes

Essayez d'ouvrir l'Ofstream comme binaire. Quelque chose comme ça devrait fonctionner: xxx


0 commentaires

1
votes

Puisque vous n'ouvrez pas le fichier en mode binaire, il est défini sur la sortie formatée par défaut. Dans la sortie formatée, votre implémentation effectue la conversion des caractères de fin de ligne que vous décrivez.


0 commentaires

-2
votes

J'aimerais pouvoir obtenir ma version pour écrire quoi que ce soit du tout ... Aucune erreur, aucune plainte, rien de mal à la déboguer, mais cela n'essaie même pas de créer le fichier. Qu'est-ce qui a tort avec fopen, fwrite et fclose ... Je n'ai jamais eu de problème avec eux


0 commentaires