Problème de Lecture avec fread, feof retourne 16
Bonjours,
j'ai un problème avec ma fonction fread.
Je doit lire un fichier généré en Pascal avec du C.
j'ai vérifié la concordance des structures (taille octet,correspondance des types pascal / C j'ai même du utiliser un # pragma pack (1) car j'avais un problème d'alignement mémoire sur ma structure.
Lorsque je fait mon fread j'arrive à récupérer les 3 premier champs de ma structure correctement et après j'ai des valeur incohérent.
Je fais un feof et un ferror pour savoir ou est le problème.
ferror me retourne 0
feof me retourne 16
EDIT :
le fread me retourne 0.
et il me remplis que les 4 premier champs et ne remplis pas le reste (les valeur incohérente sont des valeur d’initialisation du compilateur.
Je utilise Visual C++ 6.0
j'ai l'impression que il arrêt de lire le fichier.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
TModele Model;
Handle=fopen("test.MOD","r");
if(Handle ==NULL)
{
exit(1);
}else{
lecture=fread(&Model,sizeof(TModele),1,Handle);
error=feof(Handle);
error=ferror(Handle);
} |