Lecture d'hexa dans un fichier

Lecture d'hexa dans un fichier - C - Programmation

Marsh Posté le 02-08-2005 à 16:26:49    

je dois faire 2 programmes.
 
Le premier recoit un nom de fichier qui contient une chaine à encrypté, et une clé
Il encode la chaine avec un sous-programme DES et la clé recu, puis l'écrit avec un %xll dans le meme fichier avec l'extension .des
 
Le deuxième programme recoit un nom de fichier qui contient une chaine à décrypté, et une clé
Il décode la chaine avec un sous-programme DESinv et la clé recu, puis l'écrit dans le meme fichier avec l'extension .txt
 
mon problème se situe à la lecture de la chaine encodé au début du second programme. Dans mon fichier test.des, j'ai ceci:
307893eb733d51f3
 
je fais donc une lecture
fscanf(pFile, "%llx", cho.Int);
 
segmentation fault
 
cho est représenté ainsi

Code :
  1. typedef union
  2.   {
  3.     long long int Int;
  4.     char Char[9];
  5.   } chaine64;

Reply

Marsh Posté le 02-08-2005 à 16:26:49   

Reply

Marsh Posté le 02-08-2005 à 16:34:22    

fscanf(pFile, "%llx", cho.Int);  
 
compile avec tous les warnings et reviens après.
 
Et je te souhaite bien de la chance si t'arrive à avoir un ll de 9 bytes (probablement 9octets ...

Reply

Marsh Posté le 02-08-2005 à 16:35:17    

tututut
&(cho.Int)


Message édité par mcjoedassin le 02-08-2005 à 16:35:50
Reply

Marsh Posté le 02-08-2005 à 16:36:54    

mcjoedassin a écrit :

tututut
&(cho.Int)


merci  :jap:

Reply

Marsh Posté le 02-08-2005 à 16:38:25    

parenthèses inutile. Encore une fois, compile avec des warnings, tout compilateur correct de hurlera dessus.

Reply

Marsh Posté le 02-08-2005 à 16:39:48    

mcjoedassin a écrit :

tututut
&(cho.Int)


 
non :o
 
(zut grillaid)

Reply

Marsh Posté le 02-08-2005 à 16:44:12    

ôtez moi d'un doute ... les parenthèses sont inutiles mais elles ne gênent pas la compilation, je me trompe ? le .Int lui-même semble inutile n'est-ce pas ? toutefois, si ça facilite la lecture, c'est toujours bon à prendre ...

Reply

Marsh Posté le 03-08-2005 à 18:45:13    

Les parentheses sont inutiles car "." a plus grande precedence que "&". Cela dit dans ce cas je prefere mettre des parentheses, qui permettent de ne laisser aucun doute. Quand on relit du code on a autre chose a faire que s'interroger sur la precedence des operateurs.
 
Le ".Int" est lui aussi inutile, mais la encore c'est plus clair en le mettant (quoi qu'en fait, ca se discute).
 
Tu sais que la representation textuelle d'un long long de 64 bits peut faire jusqu'a 20 caracteres ?


Message édité par matafan le 03-08-2005 à 18:45:46
Reply

Marsh Posté le 03-08-2005 à 20:30:54    

rapport avec la représentation textuelle ?

Reply

Marsh Posté le 03-08-2005 à 23:48:31    

Aucun j'espere, mais comment sais-tu ce qu'il pense faire de chaine64.Char ?

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed