Problème avec mes floatant [Résolu]

Signaler
Messages postés
9
Date d'inscription
lundi 24 septembre 2007
Statut
Membre
Dernière intervention
28 juillet 2009
-
Messages postés
1466
Date d'inscription
mardi 20 février 2007
Statut
Membre
Dernière intervention
7 février 2011
-
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

Messages postés
9
Date d'inscription
lundi 24 septembre 2007
Statut
Membre
Dernière intervention
28 juillet 2009

Solution trouvée je devais remplacer le %d par %g

(fichier, "Le montant s'eleve a %g euros\r\n, c);
Messages postés
1466
Date d'inscription
mardi 20 février 2007
Statut
Membre
Dernière intervention
7 février 2011
1
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.