Bonjours, j'ai créer un gestionnaire de mot de passe en c++ je vous montre le code sinon vous allez rien comprendre :p

main.cpp
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
 
#include <iostream>
#include <string>
 
using namespace std;
 
string ajoutCompte(const string& compte,const string& login,const string& mdp);//les prototypes
int afficherCompte1(int numeroCompte);
int afficherCompteTout(int lala);
 
int main()
{
int medp=NULL;
     int choixMenu;
     int choixCompte;
	 int variablePourParametre;
 
     string compte;
     string login;
     string mdp;
     do
{
 
     cout<<"Que voulez-vous faire?: "<<endl<<endl<<"1-Voir les mots de passe"<<endl;//on affiche les choix
     cout<<"2-Ajouter un compte"<<endl<<"3-Supprimer TOUT les mots de passe";
     cout<<endl<<"4-Quitter"<<endl;
     cin>>choixMenu;
     switch (choixMenu)//le traditionnel switch
     {
         case 1:
         cout<<"-----MOTS DE PASSE ENREGISTRES-----";
         cout<<endl<<endl<<"Voici la liste des mots de passes enregistres: "<<endl<<endl;
         afficherCompteTout(variablePourParametre);//vous remarquerez , variablePourParametre ne sert a rien, mais sans sa, code block me renvoi une erreur
 
         cout<<endl<<endl<<"Quel mot de passe voulez vous afficher?(un nombre trop grand affichera\nle dernier): ";
         cin>>choixCompte;
        afficherCompte1(choixFonction);//pour afficher le compte choisi
 
         break;
 
         case 2:
         cout<<"-----AJOUT D'UN MOT DE PASSE-----"<<endl<<endl;
         cout<<"Donnez un nom au compte pour le reconnaitre: "<<endl;
         cin>>compte;
         cout<<"Entrez le login: "<<endl;
         cin>>login;
         cout<<"Entrez le mot de passe: "<<endl;
         cin>>mdp;
         ajoutCompte(compte,login,mdp);//pour ajouter un compte
         break;
 
 
         case 3:
         remove("dnnsmps.gmtp");//pour supprimer le fichier donc les mdp
         break;
 
         case 4:
         return 0;//pour fermer la console
         break;
 
         default:
         cout<<"Valeur rentree non correspondante";//si la personne a entrée un mauvais numéro
     }
 
 
     cout<<"Que voulez vous faire?"<<endl<<endl<<"1-Retourner au menu"<<endl<<"2-Quitter";//pour pouvoir retourner au menu
     cin >> choixMenu;
}while(choixMenu != 2);//si il veut quitter, la fonction se termine par un return et la console de ferme
        return 0;
}
fonction.cpp
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
 
#include <iostream>
#include <string>
#include <fstream>
#include <windows.h>
 
using namespace std;
 
 
void ajoutCompte(const string& compte,const string& login,const string& mdp)//pour ajouter un compte
{
        fstream fichier("dnnsmps.gmtp", ios::out|ios::app);//je met souvent fstream car je trouve sa plus simple
        if(fichier)
        {
               fichier << compte << std::endl;//pour ecrire dans le fichier
               fichier << login << std::endl;
               fichier << mdp << std::endl;
 
                fichier.close();
        }
        else//sinon erreur
        {
                cerr << "Impossible d'ouvrir le fichier !" << endl;
        }
}
 
void afficherCompte1(int numeroCompte)//pour afficher un compte
{
fstream fichier("dnnsmps.gmtp", ios::in);  // on ouvre le fichier en lecture
 
        if(fichier)  // si l'ouverture a réussi
        {
            int i= NULL;
            string compte;
            string login;
            string mdp;
            do
            {
                getline(fichier, compte);//récupération du compte
                getline(fichier, login);
                getline(fichier, mdp);
                i++;//incrémantation pour compter
            }while(i != numeroCompte);//tant que le numero du compte voulu est différent de celui ou on est
            cout<<compte<<":"<<endl<<"Login: "<< login <<endl<<"Mot de passe: "<< mdp << endl;
                fichier.close();  // on ferme le fichier
        }
        else  // sinon
             {
                  cerr << "Impossible d'ouvrir le fichier !" << endl;
             }
}
 
void afficherCompteTout(int trucQuiSertARien)//le paramètre ne sert a rien (je n'arrive pas a faire sans)
    fstream fichier("dnnsmps.gmtp", ios::in);  // on ouvre le fichier en lecture
 
        if(fichier)  // si l'ouverture a réussi
        {
            string compte;
            string login;
            string mdp;
            int numeroCompte=1;
            do
            {
                getline(fichier, compte);//on récupère
                getline(fichier, login);
                getline(fichier, mdp);
 
                cout << numeroCompte<<"-"<<compte<<endl;//on affiche
                numeroCompte++;//incrémentation pour la numerotation
 
            }while(getline(fichier, compte));//tant que je peut stocker une ligne dans compte
 
 
                fichier.close();  // on ferme le fichier
 
        }
        else  // sinon
                {
                    cerr << "Il faut ajouter des mots de passe avant de regarder si il y en a!!" << endl;//comme le fichier existe pas, il n'y as pas de mots de passe
 
                }
 
}
<gras><souligne>Mon problème:</souligne></gras>
Quand j'ai ajouter un 4ièm,8ièm,12ièm...ect(4 par 4) mot de passe, quand je fait"voir les mot de passe" sa me met:

Le resultat de la console:
-----Mots de passes enregistrer-----

Voici la liste des mots de passe enregistres:

1-machin
2-bidule
3-lala
4- //sa ne m'affiche pas nom de compte
Sa n'afficher pas le compte.

Bon voila, j'ai fait un exposer introductif de mon problème
Pourriez vous m'indiquer une solution :o , si vous en connaisez une o_O