Allocation dynamique,liste chainée

Signaler
Messages postés
25
Date d'inscription
jeudi 2 juillet 2009
Statut
Membre
Dernière intervention
11 février 2010
-
Messages postés
25
Date d'inscription
jeudi 2 juillet 2009
Statut
Membre
Dernière intervention
11 février 2010
-
  slt tout le monde
  

     J'ai besoin d'une aide urgente pour mon projet
         je vous explique,j'ai declaré une matrice de chaine de caractères comme objet privé d'une classe,et je veux demander à l'utilisateur de me donner sa dimension n ,m pour lui allouer la memoire dynamiquement ,comment je vais proceder.

       autre chose je veux utiliser une liste chainée pour lire des mots dans un fichier texte qui contient un mot par ligne,
comment faire ça ,parce que j'ai beau essayer ,et j'ai pas pu réussir .
     
       nb:je suis debutante en c++

                                                      aider moi c'est urgent

                                                         thanks

4 réponses

Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
41
salut

si c'est urgent, alors on ira plus vite en debugant ton code.

envoie ici ton code et les messages d'erreurs qu'il provoque.
Messages postés
25
Date d'inscription
jeudi 2 juillet 2009
Statut
Membre
Dernière intervention
11 février 2010

voila mon code pour la liste chainée ,j'ai trouver l'origine de quleques erreurs mais ce code me donne aussi une erreur lors de l'execution ,il n'affiche pas le premier element du fichier qu'il lu:


#include<fstream.h> //c'est pour le fichier texte (elle inclue iostream aussi)
#include<conio.h>    //pour getch()
#include<stdlib.h>   
#include<string.h>   //pour strlen
#include<stdio.h>   //j'été obligé de l'inclure pour utiliser (gets)sortir s'il me donne un vide




 ifstream entree("mots.txt");  //ouvrir le fichier en lecture ( fichier deja crée)
   typedef struct gr{
   char* valeur;
 struct gr*suivant;
}grille;


  typedef grille * liste;


liste saisieliste (void){


 char* val;
  liste li= NULL,precedent,nouv;
   do{
     entree>>val;                //je lit le mot qui se trouve dans le  fichier
   nouv=new (grille);           //j'lloue pour la grille et le char *:
  val =new (char);            //ce qui est en gras je l'ai ajouté dernierement
                                             et si ce qui m'a fait affiché les éléments de la liste au               debut ils ne s'affichent pas 
  nouv->valeur=val;
  if (li==NULL) li=nouv;
  else
  precedent->suivant=nouv;
  precedent=nouv;
 }while(!entree.eof());
   nouv->suivant=NULL;
    return (li);
 }
void afficheliste (liste l)
{
cout <<"liste:affichage des elements du fichier :\n";
for (l ;l!=NULL;l=l->suivant)
 {
 cout<<l->valeur<<endl


 }
}
void main (){
liste li;
ifstream entree ("mot.txt");
li=saisieliste();
afficheliste (li);
entree.close();
getch();
}


dite moi qu'il est le pb pourquoi la liste n'affiche pas son premier element 
nb:j'utilise turbo c++ comme compilareur sinon avec les autres ça va vous donner plus d'erreur ,pourant moi je n'ai pas d'erreur
                                                                                                merci bq
 
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
41
tu melanges du C et du Cpp, et tu n'indentes pas ton code... c'est illisible...
Messages postés
25
Date d'inscription
jeudi 2 juillet 2009
Statut
Membre
Dernière intervention
11 février 2010

ben puisque ça marche c'est pas grave ,mais parce que je suis debutant en c++
j'ai pas encore vu comment créer des listes en c++,et pour stdio.h je l'ai utilisé pour utiliser gets
en fait parce que c'est un projet il y'a un autre programme qui fait la l'ecriture du fichier et un autre qui le lit(pour l'ecriture c'est l'utilisteur qui donne des mots et lorsqu'il me donne du vide je sors de la fonction (c'est ça le but avec gets )si vous avez une autre manière de le faire en c++ dites le moi