Problème extrêmement bizarre de lecture de fichier (3C6B1AE6 impossible à lire)
Bonjour.
Je cherche à lire un fichier binaire en C++. J'ai réussi à isoler un problème sur un autre fichier et j'expose donc ici un "cas test".
Il s'agit de lire un tout petit fichier "test" contenant le code hexadécimal suivant (le fichier de 16 octets est disponible ici : http://www.2shared.com/file/hd68dqSa/test.html )
Code:
1 2 3 4
| 3c960d54
bcd6b9e6
3c6b1ae6
3bed7ca4 |
Normalement, cela encode les float suivants :
Citation:
1.8316902E-02
-2.6211690E-02
1.4349675E-02
7.2475243E-03
Pour la lecture j'utilise quelque chose du type :
Code:
1 2 3 4
| float test;
fileStream.open(fileName.c_str(),std::ios::in);
fileStream.read((char*)&test, sizeof(test));
std::cout<<test<<std::endl; |
Eh bien le gros problème c'est que quoi que je fasse, le 3ème float "3c6b1ae6" n'arrive pas à passer. Je ne sais pas à quoi c'est dû, ça doit être très sioux. De plus, la lecture du float suivant ne passe pas (mais si j'ouvre le fichier et que je fais un seek au 4ème float, il n'y a pas de problème). Le problème est donc vraiment sur cette valeur "3c6b1ae6".
Si vous avez une idée de tests à faire et du pourquoi du comment du problème cela m'intéresse parce que là j'avoue que je ne comprends pas du tout 8O .
Merci :ccool: