kgabou Posté(e) le 18 décembre 2007 Partager Posté(e) le 18 décembre 2007 Hello, J'ai un léger problême : Dans un TP on me demande d'écrire une fonction prenant en paramètre un flottant, et l'écrivant en binaire dans un fichier. Intuitivement j'ai fait : #include <stdio.h> #include <stdlib.h> void ecrireNombre(float *n); int main() { float a=0; printf("Quel nombre voulez-vous ecrire en binaire ?\n"); scanf("%f",&a); printf("n=%f\n",a); ecrireNombre(&a); scanf("%d"); } void ecrireNombre(float *a) { FILE *f; f=fopen("tp6.dat","wb"); // J'ouvre le fichier "TP6.dat" en écriture, en binaire. fprintf(f,"%f",*a); // J'y écris la valeur de a. fclose(f); } Et évidement, ça marche pas , il m'écrit le nombre en décimal. J'ai regardé plusieurs tutos mais je ne trouve rien là dessus, quelqu'un aurait-il une idée ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Barroud Posté(e) le 18 décembre 2007 Partager Posté(e) le 18 décembre 2007 Utilise fwrite plutot que fprintf si tu veux écrire en binaire dans le fichier. Enfin, tout dépend si tu dois l'écrire en binaire dans le fichier ou en format binaire dans un fichier texte. Lien vers le commentaire Partager sur d’autres sites More sharing options...
m00t Posté(e) le 18 décembre 2007 Partager Posté(e) le 18 décembre 2007 Si le but est d'avoir la représentation binaire d'un float, un bon exemple ici : http://www.thescripts.com/forum/thread169864.html Et il fonctionne a priori, ça me donne : 12.4 -> 01000001 01000110 01100110 01100110 -12.4 -> 11000001 01000110 01100110 01100110 Par contre pour l'algo, j'ai pas pris le temps de trop essayer de comprendre (en plus suis nul en maths pures), mais en gros on boucle 4 fois sur la méthode "char2Binary" (4 pour 4 octet dans un float) dans laquelle on décompose le paramètre passé en binaire. Après quelques tests, il se peut que l'affichage des 4 octets soient dans le mauvais sens : -12.4 -> 66 66 46 c1 en hexa -> 01100110 01100110 01000110 11000001 en binaire plutot. Maintenant je suis peut etre complètement à coté de la plaque et tu veux juste écrire un float dans un fichier binaire comme le dit Barroud Lien vers le commentaire Partager sur d’autres sites More sharing options...
kgabou Posté(e) le 18 décembre 2007 Auteur Partager Posté(e) le 18 décembre 2007 Non non c'était bien ça m00t Merci à vous deux Lien vers le commentaire Partager sur d’autres sites More sharing options...
m00t Posté(e) le 18 décembre 2007 Partager Posté(e) le 18 décembre 2007 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.