La valeur 26=0x1A pose un problème de lecture de fichier
sengr
Messages postés2Date d'inscriptionmardi 4 février 2003StatutMembreDernière intervention 4 février 2003
-
4 févr. 2003 à 22:45
cs_Kaid
Messages postés949Date d'inscriptionmardi 2 octobre 2001StatutMembreDernière intervention 8 juillet 2006
-
4 févr. 2003 à 23:39
Salut!
Jsuis en stage et jsuis pas un AS du dévelopement et ca URGE!
J'ai rencontré un BIG problème : le coup du de la valeur 26=0x1A avec les fonctions fwrite et fread.
Voila une illustration du problème:
Je veux par exemple lire les valeurs 48,49,50,51,26,52,53,54,55,56,57,58,59 et 60
(vous aurez remarquer le 26!)
#include<stdio.h>
#include<conio.h>
void main()
{
short valeur;
short tab[14]={48,49,50,51,26,52,53,54,55,56,57,58,59,60} ;
// 26 ou 3610 ca cause le meme problème//26 0000 0000 0001 1010 0x1A (on est en short!)//3610 0000 1110 0001 1010 0xE1A
FILE *ptr;
ptr = fopen("fichier.txt","w");
for(int i = 0 ; i<14 ; i++)
{
valeur=tab[i];
fwrite(&valeur,sizeof(short),1,ptr);
}
fclose(ptr);
ptr = fopen("fichier.txt","r");
for( i = 0 ; i<14 ; i++)
{
fread(&valeur,sizeof(short),1,ptr);
printf("%i ",valeur);
}
getch();
}
Et au final je lis :
48 49 50 51 51 51 51 51 51 51 51 51 51 51
Bref au lieu de lire 26 ca fait comme si ca marque la fin du fichier.
il en est de même pour 3610 (et d'autres valeurs contenant la valeur 26).
Ca a l'air con comme ca mais je comprends pas !!!
HELP!!!