J'essaie d'écrire des entiers 32 bits dans un fichier en utilisant un ostream. J'utilise l'opérateur < <:C++ Dernier numéro est seulement 2 octets au lieu de 4 lors de l'écriture de nombre entier à fstream
ostream file;
map<unsigned char, int32_t> histogram;
//…
file << reinterpret_cast<char*>(&histogram[i]);
Il fonctionne bien à l'exception du dernier numéro (dans mon cas 11328 qui serait 40 2C 00 00 en binaire) mais seulement 40 2C est écrit dans le fichier.
C'est le même numéro mais quand je vais réimporter le fichier, je veux supposer que chaque numéro est codé en 32 bits.
Qu'est-ce que j'ai fait de mal?
Un peu plus de code, l'entrée d'échantillon, la sortie attendue et la sortie d'échantillon seront utiles pour diagnostiquer le problème. –
Vous avez de la chance que cela a fonctionné du tout. –
Donc, vous voulez écrire un fichier binaire, n'est-ce pas? Ensuite, la conversion en pointeurs est la mauvaise façon de le faire. – stefan