mangarance
Messages postés2Date d'inscriptionlundi 12 juillet 2010StatutMembreDernière intervention23 août 2011
-
23 août 2011 à 17:38
cs_LA_Tupac
Messages postés305Date d'inscriptionjeudi 29 avril 2004StatutMembreDernière intervention18 janvier 2012
-
24 août 2011 à 01:03
salut a tout le monde j'aurai besoin d'aide pour ce code
code :
#include<stdlib.h>
#include<stdio.h>
void BinHexaCON(char *hexa,int *x0);
int main()
{
FILE *fichier_lu = NULL;
FILE *fichier_convertit;
char bin[8];
int b[10],i,n;
char caracter = 0;
/*ouvertur du fichier a convertir*/
fichier_lu = fopen("ACQ_b05698858.dat","rb");
if(fichier_lu != NULL)
{
/*fichier accueillant la convertion hexa*/
fichier_convertit = fopen("ConversionUP.txt","w+");
if(fichier_convertit != NULL)
{
do {
caracter = fgetc(fichier_lu);
/* On vérifie que le caractère lu soit bien en valeur binaire */
if ((caracter >= '0') && (caracter <= '1'))
{
//convertion
bin[0] = caracter;
//BinHexaCON();
char *hexa;
int *x0;
BinHexaCON(&hexa[0], &b[3], &b[2], &b[1], &b[0]);
// fprintf(fichier_convertit,"%s",/*b[0],b[1],b[2],b[3]*/fichier_convertit);
fprintf(fichier_convertit,"%d",i,n);//"%d%d%d%d",b[3],b[2],b[1],b[0]);
// fprintf(fichier_convertit,"%s",fichier_convertit);
}
} while (caracter != EOF);
}
}
}
/* fonction convertissant un caractère héxadécimal en binaire sur 4 bits. Retourne -1 si le
* caractère à convertir n'est pas valide, 0 sinon. */
int BinToHexa (int bin,char *x0)
{
switch (bin)
{
case 0000 : *x0 = '0';
break;
case 0001 : *x0 = '1';
break;
case 0010 : *x0 = '2';
break;
case 0011 : *x0 = '3';
break;
case 0100 : *x0 = '4';
break;
case 0101 : *x0 = '5';
break;
case 0110 : *x0 = '6';
break;
case 0111 : *x0 = '7';
break;
case 1000 : *x0 = '8';
break;
case 1001 : *x0 = '9';
break;
case 1010 : *x0 = 'A';
break;
case 1011 : *x0 = 'B';
break;
case 1100 : *x0 = 'C';
break;
case 1101 : *x0 = 'D';
break;
case 1110 : *x0 = 'E';
break;
case 1111 : *x0 = 'F';
break;
default : return -1;
}
//return 10;
}
cs_GodConan
Messages postés2113Date d'inscriptionsamedi 8 novembre 2003StatutContributeurDernière intervention 6 octobre 201212 23 août 2011 à 18:36
C est bien ce que je dis o) ce n est en rien une question!!! ;o)
Mais vu du code présenté je me doute qu il doit y avoir quelques soucis ;o) ...
dejà présente ce que tu doit exactement faire quel est la structure de ton fichier source et celle que tu veux en destination!!!
Pour moi (dans mon language) ;o) un fichier binaire ou hexa c est la meme chose l hexa etant juste la facon de representer un fichier binaire... (pour faire plus court à ecrire) ;o)
cs_LA_Tupac
Messages postés305Date d'inscriptionjeudi 29 avril 2004StatutMembreDernière intervention18 janvier 20121 23 août 2011 à 19:54
Ce code n'est pas de toi
J'ai bon hein?
De plus la question est sans fondement...
Les fichiers binaires sont déjà en héxa car codés à coup de 32b (2*16).
En tout cas ça crain de piquer une source et de balancer qu'on a un problème avec...
Vous n’avez pas trouvé la réponse que vous recherchez ?
BunoCS
Messages postés15472Date d'inscriptionlundi 11 juillet 2005StatutModérateurDernière intervention25 mars 2024103 23 août 2011 à 22:46
Bonsoir,
if ((caracter >= '0') && (caracter <= '1'))
Si tu rentre dans ce if, cela veut dire que caracter vaut soit 0, soit 1
int BinToHexa (int bin,char *x0)
{
switch (bin)
{
case 0000 : *x0 = '0';
break;
case 0001 : *x0 = '1';
break;
Il y a un souci de compréhension et/ou de syntaxe. Dans tes conditions case, tu écris comme si tu voulais écrire en binaire. Or, cela ne va pas être compris ainsi mais bien 1, 10 (dix), 11 (onze),...
Et au fait, j'ai déplacé ta demande dans la section C/C++. Attention la prochaine fois...
@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
cs_LA_Tupac
Messages postés305Date d'inscriptionjeudi 29 avril 2004StatutMembreDernière intervention18 janvier 20121 24 août 2011 à 01:03
Le feeling
Le gars te sort une aberration énorme et un code super commenté digne d'un tuto de site de prog ...
Pour moi ça part d'une erreur d’interprétation :
"Le binaire c'est 0&1, l'hexa c'est 0->f, donc c'est forcément différent."
Et un essai de solution :
"google, dis moi comment convertir du binaire en hexa"
Et là, c'est le drame