lire dans un fichier binaire en hexa (débutant) - C++ - Programmation
Marsh Posté le 23-06-2004 à 16:16:07
... c'est quoi ce fordel ? déjà ton flux il est en sortie, donc tu peux pas lire dessus
tes bordel
f.setf(16);
int fileDescriptor = f.fd() ;
c'est de la merde sorti d'on ne sait où
alors ce que tu fais, tu ouvres un ifstream en binaire et tu utilise sa méthode .read http://cplusplus.com/ref/iostream/ifstream/
et si tu lis sizeof(int) "octets" et bien si tu as un PCx86, tu lis 4 octets. à toi de dire combien tu veux en lire, la machine va pas le deviner
Marsh Posté le 23-06-2004 à 16:17:24
Citation : je veux afficher le 1er int en hexadecimal a l'écran, ce qui en théorie devrait donner un truc du genre "cdcd" soit deux octets, mais le hic c'est que j'ai 4 octets ("cdcdcdcd" ) au lieu de deux. |
Et pourquoi donc ?
La taille de int dépend de la plateforme. Chez toi c'est 32 bits = 4 octets. Utilise long/short.
Pourquoi passes-tu par le file descriptor ?
Marsh Posté le 23-06-2004 à 16:19:23
ben non, un int en décimal ça fait 4 octets, donc en hexa, ça en fait 2
Marsh Posté le 23-06-2004 à 16:25:45
HelloWorld a écrit :
|
le file descriptor est nécessaire pour la fonction _read().
Taz merci mais tu pourrais y aller plus gentillement.
Marsh Posté le 23-06-2004 à 16:26:26
ReplyMarsh Posté le 23-06-2004 à 16:29:43
beusser a écrit : le file descriptor est nécessaire pour la fonction _read(). |
je vois pas pourquoi j'y irais plus gentillement, je te dis d'utiliser ifstream::read et tu continues à parler de ton _read sorti d'on ne sait ou
Marsh Posté le 23-06-2004 à 16:33:08
Taz a écrit : ben non, un int en décimal ça fait 4 octets, donc en hexa, ça en fait 2 |
int dec = 4026531840;
int hex = 0xF0000000;
Donc dec fait 4 octets et hex 2, c'est ça ?
Marsh Posté le 23-06-2004 à 16:34:49
Cado :
http://www.commentcamarche.net/base/binaire.php3
Marsh Posté le 23-06-2004 à 16:36:15
Taz a écrit : je vois pas pourquoi j'y irais plus gentillement, je te dis d'utiliser ifstream::read et tu continues à parler de ton _read sorti d'on ne sait ou |
je répondais à "HelloWorld"...
personne t'as forcé a être désagréable...
Marsh Posté le 23-06-2004 à 21:27:18
Taz a écrit : : ben non, un int en décimal ça fait 4 octets, donc en hexa, ça en fait 2 |
Marsh Posté le 23-06-2004 à 21:41:11
Taz a écrit : ben non, un int en décimal ça fait 4 octets, donc en hexa, ça en fait 2 |
fortune
Marsh Posté le 23-06-2004 à 16:12:40
bonjour,
j'ai peu de documentation là dessus et mon problème est le suivant :
je veux afficher le 1er int en hexadecimal a l'écran, ce qui en théorie devrait donner un truc du genre "cdcd" soit deux octets, mais le hic c'est que j'ai 4 octets ("cdcdcdcd" ) au lieu de deux.
Pouvez vous m'aider ?
Message édité par beusser le 23-06-2004 à 16:15:25