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 : [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 : "<<Plaignant<<endl<<"Accuse : "<<Accuse<<endl<<"DATE : "<<Date<<endl; inFile.open(".//DATA//FileSentence", ios::in); if(!inFile.rdbuf()->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; } [/CODE]