récupérer un entier sur 2 octets dans un fichier [résolu] [C] - C++ - Programmation
Marsh Posté le 11-04-2003 à 11:58:47
ben si tu lis un short int il va lire seulement deux octets non?
short int data;
fread(&data, sizeof(short int),1,ptr_file)
je sais pas je dis ca comme ca mais c'est a essayer
Marsh Posté le 11-04-2003 à 12:01:11
Citation : 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 |
deja je parierais pas la dessus
ensuite :
int tadaga;
int * r = &tadaga + 2;
tu n'a pas avance de deux octets comme tu le crois, mais de 8 (bah ouais, 2 * 4 )
si tu veux lire un short, utilise un short et converti ensuite en entier
Marsh Posté le 11-04-2003 à 12:13:19
Honte à moi jusqu'à la fin des temps car :
- j'avais oublié l'existence du type short (si si), c'est pour ca que je m'emmerdais avec un int
- j'avais oublié que le + 2 était pas égal a + 2 octets, mais était fonction du type...c'est con il m'aurait segfaulté, ca m'aurait peut-être rafraichi la mémoire...
Merci à vous en tout cas.
Marsh Posté le 11-04-2003 à 11:52:28
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 :
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 :
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