Je suis un peu un débutant à C++ (en passant de C#) donc je ne suis pas exactement sûr de ce qui se passe ici. Ce que j'essaye de faire est de lire une image d'un fichier et de l'écrire dans un fichier de sortie, mais chaque fois que je fais des parties du fichier semblent être corrompues. J'ai vérifié les données dans la mémoire et il correspond réellement, donc je crois que le coupable doit être quelque chose qui se passe avec fwrite(), bien qu'il puisse toujours être juste quelque chose que je fais mal.fwrite() Corruption de fichier C++
Voici quelques exemples de données: http://pastebin.com/x0eZin6K
Et mon code:
// used to figure out if reading in one giant swoop has to do with corruption
int BlockSize = 0x200;
// Read the file data
unsigned char* data = new unsigned char[BlockSize];
// Create a new file
FILE* output = fopen(CStringA(outputFileName), "w+");
for (int i = 0; i < *fileSize; i += BlockSize)
{
if (*fileSize - i > BlockSize)
{
ZeroMemory(data, BlockSize);
fread(data, sizeof(unsigned char), BlockSize, file);
// Write out the data
fwrite(data, sizeof(unsigned char), BlockSize, output);
}
else
{
int tempSize = *fileSize - i;
ZeroMemory(data, tempSize);
fread(data, sizeof(unsigned char), tempSize, file);
// Write out the data
fwrite(data, sizeof(unsigned char), tempSize, output);
}
}
// Close the files, we're done with them
fclose(file);
fclose(output);
delete[] data;
delete fileSize;
Merci d'avance!
Ah! J'ai ouvert le fichier initial en mode binaire mais pas le fichier de sortie. Tu es génial, merci! – Lander