Convertiur binaire/decimal

Résolu
brice45 Messages postés 14 Date d'inscription mercredi 23 mai 2007 Statut Membre Dernière intervention 13 août 2007 - 13 août 2007 à 15:48
cs_omnia Messages postés 240 Date d'inscription jeudi 9 janvier 2003 Statut Membre Dernière intervention 22 mars 2009 - 14 août 2007 à 16:39
Bonjour;

Je n'arrive pas à réaliser en langage C un programme permettant de lire des données binaire dans un fichier et de les convertir en décimal pour les récrire dans un fichier.

Quelqu'un a déja résolu un problème similaire?

Merci

Brice 

6 réponses

NairodDorian Messages postés 130 Date d'inscription lundi 26 juin 2006 Statut Membre Dernière intervention 18 août 2008
14 août 2007 à 09:19
Tout est ecrit en binaire dans un fichier...
A moins que tu es utilise un truc du genre fprintf(monfichier, "%d", valeurbinaire) en passant a fopen le parametre "w".
Dans ce cas tu as un fichier texte. Si c'est le cas pas 36 solutions.

int BIN2DEC(const char *pszvalue)
{
// code cf les sources sur cppfrance
return valeur;
}

int main(...)
{
FILE *f;
char buf[16];
int valeur;
fopen(...);
while (!feof(f)) {
// lecture dans un char
...
// je chope ma valeur
valeur = BIN2DEC(buf);
// suite du boulot
...
}
fclose(f);
}

Sinon si tu as qqch du genre :

int main(...)
{
FILE *f = fopen(..., "wb");
int valeur = 10;
fwrite(&valeur, sizeof(int), 1, f);
fclose(f);
}

Alors la lecture se fera :
int main(...)
{
FILE *f = fopen(..., "rb");
int valeur;
fread(&valeur, sizeof(int), 1, f);
fclose(f);
// valeur vaut 10
}
3
cs_omnia Messages postés 240 Date d'inscription jeudi 9 janvier 2003 Statut Membre Dernière intervention 22 mars 2009
13 août 2007 à 16:31
alors je te conseil d'utiliser les fonction win32, du genre createfile, tu as un tas d'exemple sur le site ^^ il faut rechercher ^^

pour la convertion tu traite directement les caractères .

ciao
0
cs_omnia Messages postés 240 Date d'inscription jeudi 9 janvier 2003 Statut Membre Dernière intervention 22 mars 2009
14 août 2007 à 11:41
Franchement abandonne l'utilisation de fopen c'est dépassé createfile est beaucoup mieu et plus rapide !!!
 
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
14 août 2007 à 12:29
Sans vouloir partir en troll (Pas cette fois), c'est quand même bien sympa les programmes qui se compilent sous windoze/niluxe.

Surtout que personne n'a précisé d'OS...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
NairodDorian Messages postés 130 Date d'inscription lundi 26 juin 2006 Statut Membre Dernière intervention 18 août 2008
14 août 2007 à 13:57
"omnia" : "Franchement abandonne l'utilisation de fopen c'est dépassé createfile est beaucoup mieu et plus rapide !!!"

Les fonctions de la CRT sont construites pour etre en accord avec l'OS. Donc fopen appel sans aucun doute CreateFile tout comme malloc appel HeapAlloc ect... Donc fopen et CreateFile meme combat sous Windows :). La difference c'est que la fonction CreateFile est plus "fine" c'est a dire que tu as plus de parametres pour influencer tel ou tel chose (partager ou ne pas partager le fichier en ecriture par exemple) ce que tu n'as pas avec fopen. Dire que fopen c'est plus lent que CreateFile c'est vrai car fopen appelera CreateFile tout compte fait mais ca se joue a peu de chose...
0
cs_omnia Messages postés 240 Date d'inscription jeudi 9 janvier 2003 Statut Membre Dernière intervention 22 mars 2009
14 août 2007 à 16:39
Franchement ma remarque était pour information, maintenant pour les polimiques il y a déja eu pleins de messages par tous les puristes, maintenant si développez pour certains c'est seulement arriver a faire ce qu'on veux sans ce soucier des performances il faut aller voir du coté du .net et du java

sujet clos

CIAO
0
Rejoignez-nous