Salut à tous, je viens d'étudier le langage c++ et j'ai un mini projet dont je suis appeler à simuler une boite mail , j'ai plusieurs class dans le programme à savoir class Mail, class BoiteReception , class ElementsEnvoyes , class Compte , class ListeCompte .
Pour vous expliquer mon problème , je suppose que je dois vous présentez la définition au moins des deux classes Compte et ListeCompte :
Au début lorsque j'ai conçu le programme , j'avais pas l'intention de manipuler des fichiers , maintenant j'ai un besoin , lors de la phase d'authentification , je vais supposer que les login et mots de passe de mes users sont stockés dans un fichiers , et puisque mon programme est conçu de manière à ce que tous les comptes mail existants doivent être stockés dans ma liste , donc au lancement du programme je dois lire les login et mots de passe du fichier , créer un nombre de Comptes ( pour moi inconnu ) avec les même paramètres récupérés du fichier , et c là que je suis bloqué , voici mon le code utilisé dans le main :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 class Compte { string Login ; string Password ; vector < Contact > mes_contacts ; public: BoiteReception Recu ; ElementsEnvoyes Envoyes ; Compte ( string , string ); Mail Nouveau_mail(string Dest , string objet, string continu); // void Envoi_mail ( string Dest , string objet, string continu, ListeCompte ) ; void Ajouter_contact ( string ad , string N_P="" , int Mob = 0 , string Descrip = "" ); // void Supprimer_contact ( string ); // bool Chercher_contact ( string ); // void ChangePassword( string, string , string ); void Afficher (); // void putLogin(string); string getLogin(); string getPassword(); }; class ListeCompte { vector < Compte *> ListeDesComptes ; public : ListeCompte(); void Ajouter_Compte ( Compte *); Compte* Chercher_Compte ( string ) ; void Afficher(); };
étant donné que le fichier contient :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 ListeCompte Liste ; string login, passwd ; ifstream monFlux; monFlux.open("E:/C++/users.txt"); if(monFlux.is_open()) //On teste si tout est OK. { vector <Compte *>::iterator it=Liste.ListeDesComptes.begin(); while ( !monFlux.eof() ) { monFlux >> login ; monFlux >> passwd ; Compte C ( login , passwd ); // c'est ici mon pb :? Liste.Ajouter_Compte(&C); } } monFlux.close(); cout <<"Users List : " << endl; cout <<"------------" << endl; Liste.Afficher(); // la méthode Afficher ici afficher seulement le login de chaque Compte system("pause"); return 0; }
user1 1111
user2 2222
user3 3333
Le programme m'affiche :
Users Liste:
------------
user3
user3
user3
j'ai compris que dans la boucle while chaque fois que je crée la variable Compte C avec deux nouveaux paramètres , les anciennes valeurs seront donc écrasées et ce pour cela qu'au final je ne trouve dans ma liste que des comptes avec les derniers paramètres
y a il une solution sans avoir à changer la structure de mes classes ??
Merci d'avance![]()
Partager