Bonjour
J’aimerais créer un programme en C qui lit l‘entête d’un fichier .wave, en stockant les informations dans des variables de type unsigned long int, et qui les affiches ensuite en hexadécimal.
Voici ce que j’ai écris :
Le problème est que pour fgets(&FileTypeBlocID, 4, fichier) ; mon programme m’affiche que 3 octets du nombre en hexa. (0xXXXXXX) alors que j’en demande 4 : (0xXXXXXXXX). Quand je met fgets(&FileTypeBlocID, 5, fichier) ; cela m’affiche la bonne valeur. Mais la ligne d’après est alors faussée… Comment résoudre ce problème ?Code:fgets(&FileTypeBlocID, 4, fichier) ; //M’affiche 0x464952 au lieu de 0x46464952 fgets(&FileSize, 4, fichier) ; //M’affiche 0xA62446 au lieu de 0x000EA624 fgets(&FileFormatID, 4, fichier) ; fgets(&FormatBlocID, 4, fichier) ; fgets(&BlocSize, 4, fichier) ; fgets(&AudioFormat, 2, fichier) ; fgets(&NbrCanaux, 2, fichier) ; fgets(&FrequenceEch, 4, fichier) ; fgets(&BytePerSec, 4, fichier) ; fgets(&BytePerBloc, 2, fichier) ; fgets(&BitsPerSample, 2, fichier) ; fgets(&DataBlocID, 4, fichier) ; fgets(&DataSize, 4, fichier) ; printf ("FileTypeBlocID : %X\n FileSize : %X\n FileFormatID : %X\n FormatBlocID : %x\n BlocSize : %x\n AudioFormat : %x\n NbrCanaux : %x\n FrequenceEch : %x\n BytePerSec : %x\n BytePerBloc : %x\n BitsPerSample : %x\n DataBlocID : %x\n DataSize : %x\n", FileTypeBlocID, FileSize, FileFormatID, FormatBlocID, BlocSize, AudioFormat, NbrCanaux, FrequenceEch, BytePerSec, BytePerBloc, BitsPerSample, DataBlocID, DataSize) ;
Merci
-----