float point error : domain - C++ - Programmation
Marsh Posté le 05-04-2005 à 10:01:26
Maxi-mome a écrit : Slt @ tous, avec un pote on est sur un projet en C++ et on a un message d'erreur à |
Cà n'a rien à voir avec ton problème mais quand ta boucle while sort TabClient est un tableau de i+1 valeur (de 0 à i), donc quand tu fais ton for(k=0;k<i;k++) tu ne traite pas le dernier élément.
Je suis pas un pros des (iof)stream, mais j'ai pris l'habitude de faire un ficent.clear juste après avoir fait ficent.close().
Sinon pour ton problème peux tu dire où le compilo te met le message d'erreur.
Marsh Posté le 04-04-2005 à 13:22:08
Slt @ tous, avec un pote on est sur un projet en C++ et on a un message d'erreur à
l'execution "floating point error: domain", et en fait qd on déclare nos réels en entier,
ça marche !! ms nous on a besoin de réels !!!!
struct Identite
{
char Nom[Max_Chaine];
char Prenom[Max_Chaine];
int Age;
char Statut;
};
struct Date
{
int Jour;
int Mois;
int Annee;
};
struct Client
{
Identite Identite;
Date Date;
int Montant_Emprunte;
float Taux;
int Duree_Emprunt;
float Montant_Interet;
};
// suite
void Telecharger_Fichier(int &NBCLI)
{
int i, k;
char NomFic[Max_Chaine];
Client TabClient[Max_Chaine];
cout<<"\Entrez le chemin absolu du fichier a telecharger svp : ";
cin>>NomFic;
ifstream ficent(NomFic);
if(ficent==FAUX)
{
cout<<"\nOuverture impossible : fichier inexistant ";
exit(-1);
}
else
{
i=0;
ficent>>TabClient[i].Identite.Nom;
ficent>>TabClient[i].Identite.Prenom;
ficent>>TabClient[i].Identite.Age;
ficent>>TabClient[i].Identite.Statut;
ficent>>TabClient[i].Date.Jour;
ficent>>TabClient[i].Date.Mois;
ficent>>TabClient[i].Date.Annee;
ficent>>TabClient[i].Montant_Emprunte;
ficent>>TabClient[i].Taux;
ficent>>TabClient[i].Duree_Emprunt;
ficent>>TabClient[i].Montant_Interet;
while(ficent.eof()==FAUX)
{
i++;
ficent>>TabClient[i].Identite.Nom;
ficent>>TabClient[i].Identite.Prenom;
ficent>>TabClient[i].Identite.Age;
ficent>>TabClient[i].Identite.Statut;
ficent>>TabClient[i].Date.Jour;
ficent>>TabClient[i].Date.Mois;
ficent>>TabClient[i].Date.Annee;
ficent>>TabClient[i].Montant_Emprunte;
ficent>>TabClient[i].Taux;
ficent>>TabClient[i].Duree_Emprunt;
ficent>>TabClient[i].Montant_Interet;
}
NBCLI=i;
cout<<"\nIl y a "<<i<<" clients\n";
for(k=0; k<i; k++)
{
cout<<TabClient[k].Identite.Nom<<" ";
cout<<TabClient[k].Identite.Prenom<<" ";
cout<<TabClient[k].Identite.Age<<" ";
cout<<TabClient[k].Identite.Statut<<" ";
cout<<TabClient[k].Date.Jour<<" ";
cout<<TabClient[k].Date.Mois<<" ";
cout<<TabClient[k].Date.Annee<<" "; // A COMPLETER CA MARCHE POOO
cout<<TabClient[k].Montant_Emprunte<<" ";
cout<<TabClient[k].Taux<<" ";
cout<<TabClient[k].Duree_Emprunt<<" ";
cout<<TabClient[k].Montant_Interet<<"\n";
}
}
ficent.close();
}
QQn peut nous aider ?????????