Bonjour je viens solicité votre aide car je suis en rade d'idée
voila je cherche a crée un programe qui sers a extraire une donné (pour l'instant seulement une bmp nommé test je verais apres pour les choix)et sauvergarder cette donné sous l apparence d'hexadecimal et le tout dans un fichier dit DAT mais voila j ai un petit soucis :
passé un certain point de mon fichier lu il m'affiche plus que des FF dans mon fichier dat (apres 378 charactère il me semble, espace compris)
je suspecte le fait que fgetc ai pour prototype "
int fgetc (...)"
voici la fonction en question :
Code C/C++ :
int ExtractHexFromFile(int argc, char *argv[]){
unsigned char contenui = 0;
int colone = 0;
FILE* fichieri = NULL;
FILE* fichierh = NULL;
FILE* fichiero = NULL;
fichieri = fopen("test.bmp", "r");
fichierh = fopen("test.dat", "w");
fichiero = fopen("test.HEX", "w");
if (fichieri != NULL){
contenui = fgetc(fichieri);
while(contenui != EOF){
unsigned char resultat1 = 0;
unsigned char resultat2 = 0;
resultat1 = contenui % 16;
resultat2 = (contenui - resultat1) / 16;
//printf("\nresultat1 = %d\n",resultat1);
//printf("resultat2 = %d\n",resultat2);
if (resultat2 < 10){fprintf(fichierh,"%d",resultat2);} else if (resultat2 == 10){fputs("A",fichierh);}
if (resultat2 != 11){} else if (resultat2 == 11){fputs("B",fichierh);}
if (resultat2 != 12){} else if (resultat2 == 12){fputs("C",fichierh);}
if (resultat2 != 13){} else if (resultat2 == 13){fputs("D",fichierh);}
if (resultat2 != 14){} else if (resultat2 == 14){fputs("E",fichierh);}
if (resultat2 != 15){} else if (resultat2 == 15){fputs("F",fichierh);}
colone++;
if (resultat1 < 10){fprintf(fichierh,"%d ",resultat1);} else if (resultat1 == 10){fputs("A ",fichierh);}
if (resultat1 != 11){} else if (resultat1 == 11){fputs("B ",fichierh);}
if (resultat1 != 12){} else if (resultat1 == 12){fputs("C ",fichierh);}
if (resultat1 != 13){} else if (resultat1 == 13){fputs("D ",fichierh);}
if (resultat1 != 14){} else if (resultat1 == 14){fputs("E ",fichierh);}
if (resultat1 != 15){} else if (resultat1 == 15){fputs("F ",fichierh);}
colone++;
colone++;
if (colone < 48){}
else {fputs("\n",fichierh);
colone = 0;}
//fprintf(fichierh,"%d ",contenui);
//printf("valeur decimal = %d\n",contenui);
//printf("valeur max = %d\n",colone);
contenui = fgetc(fichieri);
}
fclose(fichieri);
fclose(fichierh);
}
}
merci pour toute réponse et aide pasque la je seche a mort T.T