Problème avec mes floatant

Résolu
raviel Messages postés 9 Date d'inscription lundi 24 septembre 2007 Statut Membre Dernière intervention 28 juillet 2009 - 28 juil. 2009 à 15:55
uaip Messages postés 1466 Date d'inscription mardi 20 février 2007 Statut Membre Dernière intervention 7 février 2011 - 31 juil. 2009 à 20:44
Bonjour

Je vous expose mon problème l'utilisateur peut rentrer 2 floatant (a et b) et additionnant les 2 pour former le résultat (c) et je souhaite enresgitrer ce résultat sauf que dans mon fichier texte il ne m'affiche pas du tout le résultat.

int main(int argc, char* argv[])
{
    float a,b,c;
    
    //bout de code
    cout<<"\nQuel est le montant de votre commande (ex: 8.00): ";
        cin>>a;

        cout<<"Quel est le montant des frais de port (ex: 8.00): ";
        cin>>b;

        c=a+b;
        cout<<"Le montant total est de "<<c<<" euros "<<endl;
   
     //bout de code

     fprintf(fichier, "Le montant s'eleve a  %d euros\r\n", c);


J'aimerais un petit coup de main. Voila je vous remercie d'avance.

2 réponses

raviel Messages postés 9 Date d'inscription lundi 24 septembre 2007 Statut Membre Dernière intervention 28 juillet 2009
28 juil. 2009 à 16:31
Solution trouvée je devais remplacer le %d par %g

(fichier, "Le montant s'eleve a %g euros\r\n, c);
3
uaip Messages postés 1466 Date d'inscription mardi 20 février 2007 Statut Membre Dernière intervention 7 février 2011
31 juil. 2009 à 20:44
Salut,
Non, tu devrais remplacer le %d par %f, même si %f et %g sont à première vue semblables.

Une remarque cependant, pourquoi utiliser fprintf() (qui est une fonction C) dans un code en C++ ?
En C :
FILE *file=fopen("fichier","w");
if (file) { fprintf(file,"blabla %f",var); fclose(file); }

En C++ :
ifstream file;
file.open("fichier");
if (file.is_open()) { file << "blabla " << var; file.close(); }

Ca te permet simplement de garder l'opérateur << comme pour le flux cout.


Cordialement, uaip.
0
Rejoignez-nous