82 votes

Lire et écrire dans des fichiers binaires en C ?

Quelqu'un a-t-il un exemple de code qui peut écrire dans un fichier binaire ? Et aussi un code qui peut lire un fichier binaire et l'afficher à l'écran. En regardant les exemples, je peux écrire dans un fichier sans problème, mais lorsque j'essaie de lire un fichier, la sortie ne se fait pas correctement.

0voto

Alan Points 768

J'ai vraiment eu du mal à trouver un moyen de lire un fichier binaire dans un tableau d'octets en C++ qui produirait les mêmes valeurs hexagonales que celles que je vois dans un éditeur hexagonal. Après de nombreux essais et erreurs, ceci semble être la façon la plus rapide de le faire sans casts supplémentaires. Par défaut, il charge le fichier entier en mémoire, mais n'imprime que les 1000 premiers octets.

string Filename = "BinaryFile.bin";
FILE* pFile;
pFile = fopen(Filename.c_str(), "rb");
fseek(pFile, 0L, SEEK_END);
size_t size = ftell(pFile);
fseek(pFile, 0L, SEEK_SET);
uint8_t* ByteArray;
ByteArray = new uint8_t[size];
if (pFile != NULL)
{
    int counter = 0;
    do {
        ByteArray[counter] = fgetc(pFile);
        counter++;
    } while (counter <= size);
    fclose(pFile);
}
for (size_t i = 0; i < 800; i++) {
    printf("%02X ", ByteArray[i]);
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X