Bonjour,

J'ai un petit problème avec la fonction fread. Lorsque je récupère certaines chaînes de caractères dans mon fichier binaire, des caractères viennent parfois se rajouter.

La structure concernée est la suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
typedef struct{
unsigned long taille_mental_exhaust;
char * mental_exhaust; 
}Sort
Le morceau de code me permettant de récupérer la chaîne est le suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
fread(&(ListeSorts[i].taille_mental_exhaust), 4, 1, fp);
ListeSorts[i].mental_exhaust = new char[ListeSorts[i].taille_mental_exhaust];
fread((ListeSorts[i].mental_exhaust), ListeSorts[i].taille_mental_exhaust, 1, fp);
Et j'obtiens parfois en faisant un cout de ListeSorts[i].mental_exhaust des caractères résiduels après la valeur.
Par exemple, si taille_mental_exhaust vaut 1, et que mental_exhaust vaut 0, j'obtiens à l'affichage :

J'espère que vous pourrez m'aider .