Salut !
Je cherche à lire des données dans un fichier binaire afin de les réafficher en ascii.
Voici la tête du fichier à lire
@1000
4A 75 6C 69 65 6E FF FF FF FF FF FF FF FF FF FF
31 39 38 35 FF FF FF FF FF FF FF FF FF FF FF FF
voici mon code :
typedef struct file_lines
{
uint16_t address;
uint8_t hex_data[16];
char ascii_data[17];
}file_line_t;
void
firmware__format_data
(
char* input_file
){
file_line_t line[1000];
FILE* file_to_format;
file_to_format = fopen(input_file, "rb");
char buffer[64];
char *ptr;
uint16_t nb_line = 16;
uint8_t j = 0;
//Récupère l'adresse
fgets(buffer, sizeof (buffer), file_to_format);
ptr = strtok(buffer, "@");
sscanf(ptr, "%x", &line[0].address);
printf("Adresse de debut : 0x%x %u\n", line[0].address, line[0].address);
//lecture d'une ligne
while (fgets(buffer, sizeof (buffer), file_to_format) != NULL)
{
ptr = strtok(buffer, " ");
sscanf(ptr, "%x", &line[0].hex_data[j]);
printf("%c", line[0].hex_data[j]);
ptr = strtok(NULL, " ");
j++;
}
}
Et au final quand j'affiche line[0].hex_data ça m'affiche le premier caractère de chaque ligne et non chaque caractère de la ligne comme je l'attend...
Je ne vois pas ce qui ne va pas... Quelqu'un a une idée ?
++