Bonjour,
Je dois récupérer un nombre codé sur 2 octets dans un fichier, et je ne comprends pas pourquoi le code suivant ne fonctionne pas :
Code :
- int d_tmp = 0;
- fread(&d_tmp + 2, 1, LN_LONGUEUR, f_ebcdic);
|
LN_LONGUEUR vaut 2.
Vu qu'un int = 4 octets, et que le nombre est codé sur 2 octets seulement, je pensais lui passer l'addresse de l'entier + 2 octets. Bon ca me semblait bien crade (quoique?), mais j'aurais voulu comprendre pourquoi ca ne marchait pas (d_tmp vaut 0). Là pour l'instant je fais :
Code :
- int d_tmp, d_ln_data;
- d_tmp = d_ln_data = 0;
- fread(&d_tmp, 1, LN_LONGUEUR, f_ebcdic);
- d_ln_data = d_tmp >> LN_LONGUEUR * 8;
|
et ca marche, donc le nombre est bien récupéré.
Merci d'avance
Message édité par KSauzeRK le 11-04-2003 à 12:14:01