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.
Réponse
Trop de publicités?
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]);
}
- Réponses précédentes
- Plus de réponses