Bonjour à tous

je ne comprends vraiment pas le comportement de mon programme. A la base c'est un code de C# que je dois porter en C. Ce code lit un fichier qui débute de cette manière :


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
4FNR01 90R1-40804182301ÿÿÿÿÿÿÿÿ2 6o3fOÿÿÿÿÿÿÿÿ2 3fOÿÿÿÿÿÿÿÿ2 8?3fOÿÿÿÿÿÿÿÿ2 8O3fOÿÿÿÿÿÿÿÿ2 8_3fOÿÿÿÿÿÿÿÿ2 93fOÿÿÿÿÿÿÿÿ2 9o3fOÿÿÿÿÿÿÿÿ2 3fOÿÿÿÿÿÿÿÿ2 @
3fOÿÿÿÿÿÿÿÿ2 A3fOÿÿÿÿÿÿÿÿ2 A_3fOÿÿÿÿÿÿÿÿ2 Ao3fOÿÿÿÿÿÿÿÿ2 3fOÿÿÿÿÿÿÿÿ2 A3fOÿÿÿÿÿÿÿÿ2 B3fOÿÿÿÿÿÿÿÿ2 B3fOÿÿÿÿÿÿÿÿ2 B?3fOÿÿÿÿÿÿÿÿ2 B_3fOÿÿÿÿÿÿÿÿ2 B3fOÿÿ
ÿÿÿÿÿÿ2 D/3fOÿÿÿÿÿÿÿÿ2 DO3fOÿÿÿÿÿÿÿÿ2 D_3fOÿÿÿÿÿÿÿÿ2 Do3fOÿÿÿÿÿÿÿÿ2 D3fOÿÿÿÿÿÿÿÿ2 E3fOÿÿÿÿÿÿÿÿ2 E_3fOÿÿÿÿÿÿÿÿ2 Q?3fOÿÿÿÿÿÿÿÿ2 QO3fOÿÿÿÿÿÿÿÿ2 X3fOÿÿÿÿ
ÿÿÿÿ2 X/3fOÿÿÿÿÿÿÿÿ2 XO3fOÿÿÿÿÿÿÿÿ2 Y3fOÿÿÿÿÿÿÿÿ2 Y_3fOÿÿÿÿÿÿÿÿ2 Yo3fOÿÿÿÿÿÿÿÿ2 3fOÿÿÿÿÿÿÿÿ2 Y3fOÿÿÿÿÿÿÿÿ2 `3fOÿÿÿÿÿÿÿÿ2 `3fOÿÿÿÿÿÿÿÿ2 a3fOÿÿÿÿÿÿÿÿ2
rO3fÿÿÿÿÿÿÿÿ2 s3fÿÿÿÿÿÿÿÿ2 s3fÿÿÿÿÿÿÿÿ2 sO3fÿÿÿÿÿÿÿÿ2 3fOÿÿÿÿÿÿÿÿ2 y/3fOÿÿÿÿÿÿÿÿ2 y_3fÿÿÿÿÿÿÿÿ2 yo3fÿÿÿÿÿÿÿÿ2 y3fOÿÿÿÿÿÿÿÿ2 ?3fÿÿÿÿÿÿÿÿ2 _3fOÿÿÿÿÿ
ÿÿÿ2 /3fOÿÿÿÿÿÿÿÿ2 _3fOÿÿÿÿÿÿÿÿ2 o3fOÿÿÿÿÿÿÿÿ23fÿÿÿÿÿÿÿÿ2 3fOÿÿÿÿÿÿÿÿ2 3fÿÿÿÿÿÿÿÿ2
                                                                                   3fOÿÿÿÿÿÿÿÿ2
                                                                                                3fOÿÿÿÿÿÿÿÿ2
                                                                                                             ?3fOÿÿÿÿÿÿÿÿ2
                                                                                                                           O3fÿÿÿÿÿÿÿÿ2
 
o3fOÿÿÿÿÿÿÿÿ2
              3fOÿÿÿÿÿÿÿÿ2
                           3fOÿÿÿÿÿÿÿÿ2
3fOÿÿÿÿÿÿÿÿ2
Théoriquement, je dois reconnaître l'entête (4FNR01 90R1-40804182301), puis lire les valeurs suivantes pour les traiter. Le code en C# se sert d'un bytereader, bienheureux-soit-il! mais chez moi ça lit un truc complètement bizarre.

Quand mon curseur est juste après l'entête, je lance un
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
fread(temp, sizeof(char), 1, fichierentree);
pour reconnaître l'entête de la sous partie. Evidemment temp est un char *, alloué et vide (100 caractères). Cet entête doit être égal à 50 en décimal, donc 32 en hexa, donc le caractère ' ' en ascii.
sauf que après tests, je m'aperçois que temp est égal à "4". Si je demande à fread de lire plus de caractères, temp sera égal à "4 ". et jamais autre chose, même si je tape

Code : Sélectionner tout - Visualiser dans une fenêtre à part
fread(temp, sizeof(char), 1000, fichierentree);
.

Ai-je mal compris la structure de mon fichier?