Bonjour,
Je voudrais extraire les donnée d'un fichier binaire et les stocker dans des variables.
Les premiers bits du fichiers sont des caracteres, je les extraits grace a cette fonction :
(FileIO est un fstream)
Jusqu'ici ça marche. Mais je voudrais convertir les blocs de bit suivant directement en un long, et non en caractere, j'utilise donc la fonction :Code:
1
2
3 void FileIO::readMachineEndian(char& aNumber) { this->read(&aNumber, sizeof(aNumber)); }
Le flux de 4 bloc est en exa 00 00 00 06.Code:
1
2
3
4 void FileIO::readMachineEndian(long& aNumber) { this->read((char*)&aNumber, sizeof(aNumber)); }
Je devrais onc obtenir la valeur 6 dans aNumber.
Or la valeur obtenue est 100663296...
Pourquoi cette incohérence ?
Merci d'avance.