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 :
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.
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
Quand mon curseur est juste après l'entête, je lance un
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 fread(temp, sizeof(char), 1, fichierentree);
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?
Partager