Je cette question, je ne sais pas si l'on attend, voici la chose:C++ Lecture octets Problème
Je suis en train de charger octets d'un fichier à une structure comme celle-ci:
struct
{
char
char
char
char
unsigned int
}
mais le problème est lorsque l'entier non signé est rempli, il semble que dans le flux de lecture, les octets sont échangés, ex Si le fichier contient 0x45080000, l'entier non signé aura 0x84500000, ce qui est faux.
Cela peut être "résolu" si je change l'int non signé pour un BYTE [4], mais ce n'est pas ce que je veux. Voici le code que j'utiliser pour lire à partir du fichier:
fopen_s(&mFile, "myFile.ext", "rb");
if(mFile == NULL) print(" **** E R R O R ! **** ");
else
{
if(fread(&myStruct, sizeof(MY_Struct), 1, myFile) != 1)
{
print(" **** E R R O R ! **** ");
return 0;
}
}
Est-ce un comportement attendu ou ce que je fais mal?
salutations
L'endianisme vous mordra dans le cul. –
Grands messages d'erreur! Je noterai ceci pour moi-même. – RocketR
Je ne sais pas si c'est un problème d'endianness parce que je suis en train de lire les octets comme ils sont dans le fichier stocké, un par un, donc l'endianness ne devrait pas affecter, je pense –