Programmation en langage c++

mane96 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -  
NHenry Messages postés 15219 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.
A voir également:

5 réponses

NHenry Messages postés 15219 Date d'inscription   Statut Modérateur Dernière intervention   365
 
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.
1
NHenry Messages postés 15219 Date d'inscription   Statut Modérateur Dernière intervention   365
 
0
mane96 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
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]=' ';
}
}
}
0
Phil_1857 Messages postés 1872 Date d'inscription   Statut Membre Dernière intervention   168
 
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mane96 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
#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]=' ';
}
}
}
0