Pourquoi ces lignes de code ne fonctionne pas lorsque je tente de lire un DWORD num = 1880762702
en utilisant fread(&num, "file path", 1, FILE*);
je reçois le result = 10574
si je change le num à tout autre numéro dire 2880762702
seulement alors cela fonctionne.lecture DWORD de fichier binaire
1
A
Répondre
3
Pour lire une quantité multi-octets telle qu'un DWORD (qui est Win32-parler pour un nombre de 32 bits) vous devez être au courant de endianness. Il est préférable de lire le numéro un octet à la fois et de convertir l'ordre des octets utilisé dans le fichier.
FILE *in;
DWORD num = 0;
if((fin = fopen("filename.bin", "rb")) != NULL)
{
unsigned char b0, b1, b2, b3;
fread(&b3, sizeof b3, 1, in);
fread(&b2, sizeof b2, 1, in);
fread(&b1, sizeof b1, 1, in);
fread(&b0, sizeof b0, 1, in);
// Assuming file is big-endian.
// for little endian, swap the order to b0...b3
num = (((DWORD) b3) << 24) | (((DWORD) b2) << 16) | (((DWORD) b1) << 8) | b0;
fclose(in);
}
1
Le second paramètre à fread()
est la taille des données que vous voulez lire. Dans votre cas, c'est sizeof(DWORD)
.
Questions connexes
- 1. Lecture générique d'un fichier binaire bien formé
- 2. Lecture dans un fichier binaire dans haskell
- 3. Lecture du fichier binaire depuis URLConnection
- 4. lecture double du fichier binaire en c
- 5. Lecture d'un fichier binaire dans un tableau
- 6. Fichier binaire lecture/écriture avec structure de longueur fixe
- 7. Résultat inattendu de HttpURLConnection - lecture du fichier binaire à distance
- 8. fichier binaire
- 9. lecture/écriture d'une structure dans un fichier binaire
- 10. Comment convertir une lecture/écriture binaire en lecture/écriture non binaire en C++
- 11. Échec d'exécution en lecture/écriture binaire
- 12. Problème lors de la lecture d'un fichier binaire dans un fichier
- 13. lecture de fichier C# .NET
- 14. E/S de fichier binaire
- 15. lecture d'un fichier binaire sous forme de texte et de les manipuler ... [C#] Versus [VB.NET]
- 16. Lecture du fichier binaire de sdcard en utilisant des classes de flux dans Android
- 17. fichier .dat binaire
- 18. Taille du fichier binaire
- 19. fichier binaire à chaîne
- 20. Écrire fichier binaire
- 21. Fichier sous forme binaire
- 22. Fichier d'installation binaire
- 23. La lecture d'un fichier binaire en Python: prend beaucoup de temps pour lire certains octets
- 24. Méthode la plus rapide de lecture et d'écriture binaire
- 25. Lucene Erreur lors de la lecture du bloc binaire: java.io.EOFException
- 26. Lecture binaire jpeg et stockage dans SQL Server db
- 27. Lecture d'un flottant «binaire» Windows dans une variable ASP jscript
- 28. Problème de chiffrement de fichier binaire
- 29. Référence de disposition de fichier binaire
- 30. Stockage d'un gros fichier binaire
Le code que vous avez fourni ne serait même pas compilé. S'il vous plaît fournir un extrait complet de code ... –
pouvez-vous clarifier votre question un peu s'il vous plaît. postez le code actuel de votre programme, y compris la déclaration des variables utilisées dans votre code, et les appels à fopen() et fclose(). –