Programmation en langage c++
mane96
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
-
NHenry Messages postés 15221 Date d'inscription Statut Modérateur Dernière intervention -
NHenry Messages postés 15221 Date d'inscription Statut Modérateur Dernière intervention -
bonjour, je suis étudiant et un débutant en langage C++ . Je veux faire une programmation qui permet de faire une liste c'est à dire avoir la possibilité d'ajouter un nom à l'infini puis à la fin d'afficher les noms inscrit.
j'ai réussi à faire un code qui fait tous cela mais mon seul problème c'est l'affichage, il affiche que le dernier nom ajouter. j'arrive pas a faire l'allocation dynamique .
j'aimerai bien que vous m'aidez à trouver une solution.
j'ai réussi à faire un code qui fait tous cela mais mon seul problème c'est l'affichage, il affiche que le dernier nom ajouter. j'arrive pas a faire l'allocation dynamique .
j'aimerai bien que vous m'aidez à trouver une solution.
A voir également:
- Programmation en langage c++
- Langage ascii - Guide
- Application de programmation - Guide
- Langage binaire - Guide
- Mettre en veille un programme - Guide
- Pascal langage - Télécharger - Édition & Programmation
5 réponses
Comme ça, je dirai que comme tu enregistre dans ton tableau le pointeur vers un objet"string" et ce cette objet est réutilisé, en gros, tu ne fais qu'ajouter le même objet et donc ça ne conserve que la dernière saisie.
oui désoler c'est vrai, voila donc mon code est ne tenais pas compte des noms des dossiers.
///////////////////////////////pointeur.cpp//////////////////////////////// #include<iostream> #include<string> #include"pointeur.hpp" using namespace std; char encore; int c=0; string tab[5][5]; int main(){ pointeur p; string b; string *a{new string()}; a=&b; do { p.remplir(tab); cout<<"ecrivez un mot"<<endl; cin>>b; tab[c][0]=*a; c=c+1; if (c==5) { p.affiche(tab); return 0; } else { } p.affiche(tab); cout<<"encore un mot?"<<endl; cin>>encore; } while (encore=='o'); p.affiche(tab); return 0; } ///////////////////////////////pointeur.hpp//////////////////////////////// #include <iostream> #include <string> using namespace std; class pointeur { private: /* data */ public: pointeur(); void affiche(string tab[5][5]); void remplir(string tab[5][5]); }; pointeur::pointeur() { } void pointeur::affiche(string tab[5][5]){ system("clear"); for (int i = 0; i < 5; i++){ for(int j = 0; j < 5; j++){ cout<< tab[i][j]<<' '; } cout<< endl ; } } void pointeur::remplir(string tab[5][5]){ for (int i=0 ; i<5 ;i++){ for (int j=0 ; j<5 ; j++){ tab[i][j]=' '; } } }
Et il n'y a toujours pas les balise de code:
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question#include<iostream> #include<string> #include"pointeur.hpp" using namespace std; char encore; int c=0; string tab[5][5]; int main(){ pointeur p; string b; string *a{new string()}; a=&b; do { p.remplir(tab); cout<<"ecrivez un mot"<<endl; cin>>b; tab[c][0]=*a; c=c+1; if (c==5) { p.affiche(tab); return 0; } else { } p.affiche(tab); cout<<"encore un mot?"<<endl; cin>>encore; } while (encore=='o'); p.affiche(tab); return 0; }
///////////////////////////////pointeur.hpp////////////////////////////////
#include <iostream> #include <string> using namespace std; class pointeur { private: /* data */ public: pointeur(); void affiche(string tab[5][5]); void remplir(string tab[5][5]); }; pointeur::pointeur() { } void pointeur::affiche(string tab[5][5]){ system("clear"); for (int i = 0; i < 5; i++){ for(int j = 0; j < 5; j++){ cout<< tab[i][j]<<' '; } cout<< endl ; } } void pointeur::remplir(string tab[5][5]){ for (int i=0 ; i<5 ;i++){ for (int j=0 ; j<5 ; j++){ tab[i][j]=' '; } } }