dreamanoir | Voila je recupere grace a la procedure chargement les données concernant un client dans un fichier texte.
Je veux ensuite intégrer ces données dans une liste chainée
La procédure s'éxécute correctement mais lorsqu'elle se termine turbo c++ se ferme et j'ai le message suivant : "Turbo c++ IDE Le processeur NTVDM a rencontré une instruction non autorisée. CS:8b3c IP:69e8 OP:f023 fa 23 04 Choisissez 'FERMER' pour mettre fin à l'application" Je n'arrive pas a comprendre de quoi cela peut venir.
Ci dessous le code de ma procedure ainsi que de ma liste chainée :
Code :
- //procedure de chargement depuis un fichier
- void chargement(liste_client &lst_cli)
- {
- client *ptrnew;
- char *s_client;
- char *pointeur_chaine;
- char nom[30], prenom[30], adresse[50], cp[30], ville[50];
- ifstream fic("clients.txt",iso::in);
- cout << "Ouverture de fichier" << fic;
- getch();
- if(!fic)//si le fichier n'a pas pu etre ouvert
- {
- cout << "Le fichier n'a pas pu etre ouvert";
- getch();
-
- }
- else//fichier ouvert
- {
- cout << "Fichier Ouvert";
- getch();
- fic.getLine(s_client,250);
- //nom
- pointeur_chaine=strtok(s_client,";" );
- strcpy(nom,pointeur_chaine);
- //prenom
- pointeur_chaine=strtok(NULL,";" );
- strcpy(prenom,pointeur_chaine);
- //adresse
- pointeur_chaine=strtok(NULL,";" );
- strcpy(adresse,pointeur_chaine);
- //cp
- pointeur_chaine=strtok(NULL,";" );
- strcpy(cp,pointeur_chaine);
- //ville
- pointeur_chaine=strtok(NULL,"\n" );
- strcpy(ville,pointeur_chaine);
- cout << nom << endl << prenom << endl << adresse << endl << cp << endl << ville;
- //ptrnew=new client(nom,prenom,adresse,cp,ville);
- //lst_cli.ajouter(ptrnew);
-
- fic.fclose();
- }
- }
- //classe liste_client
- class liste_client
- {
- private:
- int nbclient;
- client *ptrTete;//pointeur de tete de la liste
- client *ptrCour;//pointeur courant
- public:
- void affichage();
- void ajouter(client *ptrnew);
- liste_client();
- ~liste_client();
- };
- //constructeur
- liste_client::liste_client()
- {
- ptrTete=new client;
- ptrTete=0;
- ptrCour=new client;
- ptrTete=0;
- }
- //destructeur de liste
- liste_client::~liste_client()
- {
- client *ptr;
- ptr=ptrTete;
- while (ptr!=NULL)
- {
- client *ptr2=ptr;
- ptr=ptr->ptrsuiv;
- delete ptr2;
- }
- delete ptr;
- }
- //procedure d'ajout d'un client dans la liste chainee
- void liste_client::ajouter(client *ptrnew)
- {
- ptrnew->set_ptrsuiv(0);
- if (ptrTete==0)
- {
- ptrCour=ptrnew;
- ptrTete=ptrTete;
- }
- else
- {
- ptrCour->set_ptrsuiv(ptrnew);
- ptrCour=ptrnew;
- }
- nbclient++;
- }
- //procedure d'affichage
- void liste_client::affichage()
- {
- cout << "\nNom : " << ptrCour->get_nom();
- cout << "\nPrenm : " << ptrCour->get_prenom();
- cout << "\nAdresse : " << ptrCour->get_adresse();
- cout << "\nCp : " << ptrCour->get_cp();
- cout << "\nVille : " << ptrCour->get_ville();
- }
|
Si vous arrivez a m'aider ça serait vraiment bien car ça fait une semaine que je suis sur ce problème |