xeon666
Messages postés28Date d'inscriptionvendredi 17 mars 2006StatutMembreDernière intervention14 août 2008
-
10 oct. 2006 à 16:05
xeon666
Messages postés28Date d'inscriptionvendredi 17 mars 2006StatutMembreDernière intervention14 août 2008
-
10 oct. 2006 à 16:08
Voila mon probleme :
Je lit un fichier séquentiellement et quand j'arrive a la fin ou que j'ai trouve ce que je désire, je sort de ma boucle ferme et le fichier et effectue mon return;
Le probleme est que lorsque si je fait monifstream.close(), mon programme plante a cette instruction. Si je ne le fait pas, le programme plante au return. Voila mon code :
char* Tricap :: GETSEN(char *Chaine)
{
// nous devons recevoir deux parametres : respectivement le nom et le password
ifstream inFile;
int trouve=0;
char *Plaignant, *Accuse, *Date, *toReturn=new char[10];
char *PlaignantFile=new char[200], *AccuseFile=new char[200], *DateFile=new char[200], *Verdict= new char[100];
cout<<"Demande de GETSEN"<<endl;
// il faut séparer les parametres
Plaignant = Parse(Chaine);
Accuse = Parse(Chaine);
Date= Parse(Chaine);
cout<<"Plaignant : "<is_open())
{
cout<<"ERREUR DOUVERTURE DU FICHIER";
exit(1); // il faudra implementer une exception
}
while(!inFile.eof() && trouve==0)
{
char ligne[512];
inFile.getline(ligne, sizeof(ligne));
sscanf(ligne, "%s %s %s = %s", PlaignantFile, AccuseFile, DateFile, Verdict);
cout<<"PLAIGNANT FILE : "<<PlaignantFile<<" ACCUSE FILLE : "<<AccuseFile<<" DATE FILLE : "<<DateFile<<" Verdict FILLE : "<<Verdict<<endl;
if(strcmp(PlaignantFile, Plaignant) == 0)
if(strcmp(AccuseFile, Accuse) == 0)
if(strcmp(DateFile, Date) == 0)
{
trouve=1;
cout<<"OK2"<<endl;
//inFile.close();
}
}
if(trouve==0)
{
toReturn=new char[15];
strcpy(Verdict, "Aucune correspondance");
cout<<"OK3"<<endl;
//inFile.close();
}
cout<<"OK"<<endl;
inFile.close();
return Verdict;
}