Bonjour à tous,

J'essaye de réaliser un programme qui puisse écrire le contenu de variable en mode binaire dans un fichier. j'ai déjà posté sur dans la section Qt vu que je l'utilise mais je pense que la solution peut se trouver sans cette librairie, juste avec le C++.
Je dois pouvoir écrire ces variables en big ou little endian et ce peut importe ma machine.

Je m'y suis pris comme cela :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
quint64 qi1 = 127;
quint64 qi2 = 18;
quint64 qi3 = 1;
quint64 qi4 = 10;
qint64 qi5 = 11;
qint64 qi6 = 4660;
// Je dois écrire ces variables en big endian dans cette exemple
FILE* fichier;
fichier = fopen("lol", "wb");
fwrite(&qi1, 2, 1, fichier); // l'access size de i1 est de 2
fwrite(&qi2, 1, 1, fichier); // l'access size de i2 est de 1
fwrite(&qi3, 1, 1, fichier); // l'access size de i3 est de 1
fwrite(&qi4, 1, 1, fichier); // l'access size de i4 est de 1
fwrite(&qi5, 1, 1, fichier); // l'access size de i5 est de 1
fwrite(&qi6, 2, 1, fichier); // l'access size de i6 est de 2
fclose(fichier);
Sur Ubuntu j'obtiens dans mon fichier (hexdump) :
007f 0112 0b0a 1234
Sur Windows j'obtiens :
7f00 1201 0a0b 3412
Hélas mon responsable me dit que je dois obtenir :
007f 12 01 0a0b 1234
Je suis vraiment pas calé dans ce domaine, je sais pas si je m'y prends bien ou si je dois faire autrement.
Si quelqu'un a une idée (pas trop compliqué (genre décallage de bit ), je le remercie)