Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1385 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  lire dans un fichier binaire en hexa (débutant)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

lire dans un fichier binaire en hexa (débutant)

n°774493
beusser
Posté le 23-06-2004 à 16:12:40  profilanswer
 

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 ?
 

Code :
  1. fstream f("ant.3ds", ios::binary | ios::out );
  2. f.setf(16);
  3. int fileDescriptor = f.fd() ;
  4. _read(fileDescriptor, &balise, sizeof(int));
  5. cout<<hex<<balise<<endl ;


Message édité par beusser le 23-06-2004 à 16:15:25
mood
Publicité
Posté le 23-06-2004 à 16:12:40  profilanswer
 

n°774500
Taz
bisounours-codeur
Posté le 23-06-2004 à 16:16:07  profilanswer
 

... 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

n°774504
HelloWorld
Salut tout le monde!
Posté le 23-06-2004 à 16:17:24  profilanswer
 

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 ?


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°774507
Taz
bisounours-codeur
Posté le 23-06-2004 à 16:19:23  profilanswer
 

ben non, un int en décimal ça fait 4 octets, donc en hexa, ça en fait 2

n°774518
beusser
Posté le 23-06-2004 à 16:25:45  profilanswer
 

HelloWorld a écrit :

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 ?


 
le file descriptor est nécessaire pour la fonction _read().
Taz merci mais tu pourrais y aller plus gentillement.

n°774520
SoWhatIn22
Posté le 23-06-2004 à 16:26:26  profilanswer
 

Taz a écrit :

ben non, un int en décimal ça fait 4 octets, donc en hexa, ça en fait 2


???

n°774526
Taz
bisounours-codeur
Posté le 23-06-2004 à 16:29:43  profilanswer
 

beusser a écrit :

le file descriptor est nécessaire pour la fonction _read().
Taz merci mais tu pourrais y aller plus gentillement.

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

n°774527
Taz
bisounours-codeur
Posté le 23-06-2004 à 16:30:11  profilanswer
 

pour plus d'incompréhension

n°774530
HelloWorld
Salut tout le monde!
Posté le 23-06-2004 à 16:33:08  profilanswer
 

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 ?


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°774532
Taz
bisounours-codeur
Posté le 23-06-2004 à 16:33:48  profilanswer
 

c'est fou ce que vous êtes impressionables, lavettes :o :D

mood
Publicité
Posté le 23-06-2004 à 16:33:48  profilanswer
 

n°774537
HelloWorld
Salut tout le monde!
Posté le 23-06-2004 à 16:34:49  profilanswer
 
n°774542
beusser
Posté le 23-06-2004 à 16:36:15  profilanswer
 

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...

n°774543
Taz
bisounours-codeur
Posté le 23-06-2004 à 16:37:16  profilanswer
 

non, je vous fait ce plaisir renouvellé

n°774895
cricri_
Posté le 23-06-2004 à 21:27:18  profilanswer
 

Taz a écrit :  :

ben non, un int en décimal ça fait 4 octets, donc en hexa, ça en fait 2  


 :lol:


Message édité par cricri_ le 23-06-2004 à 21:29:10
n°774914
schnapsman​n
Zaford Beeblefect
Posté le 23-06-2004 à 21:41:11  profilanswer
 

Taz a écrit :

ben non, un int en décimal ça fait 4 octets, donc en hexa, ça en fait 2


 
fortune [:meganne]


---------------
From now on, you will speak only when spoken to, and the first and last words out of your filthy sewers will be "Sir!"
n°779014
beusser
Posté le 26-06-2004 à 13:31:06  profilanswer
 
n°779030
cricri_
Posté le 26-06-2004 à 14:00:39  profilanswer
 

désolé, c'était des bêtises à Taz dont je rigolai ... :whistle:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  lire dans un fichier binaire en hexa (débutant)

 

Sujets relatifs
reconnaître fichier .js[Débutant en CSS] Affichage de pages dans un div ...
[PHP] test upload de fichier (resolu)[VBS] Copie de fichier
Telnet avec fichier d'argument.[JAVA - DEBUTANT] Gérer la position d'un texte
Additionner les informations dans un fichier[CGI - C] Upload de fichier
pb accent aigu dans fichier batchmodification d'un fichier en fonction du nombre de ligne / char.
Plus de sujets relatifs à : lire dans un fichier binaire en hexa (débutant)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR