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