Allocation dynamique,liste chainée

VersLeBut Messages postés 25 Date d'inscription jeudi 2 juillet 2009 Statut Membre Dernière intervention 11 février 2010 - 30 nov. 2008 à 19:18
VersLeBut Messages postés 25 Date d'inscription jeudi 2 juillet 2009 Statut Membre Dernière intervention 11 février 2010 - 8 déc. 2008 à 14:01
  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

coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
1 déc. 2008 à 00:47
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.
0
VersLeBut Messages postés 25 Date d'inscription jeudi 2 juillet 2009 Statut Membre Dernière intervention 11 février 2010
8 déc. 2008 à 00:20
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
 
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
8 déc. 2008 à 00:43
tu melanges du C et du Cpp, et tu n'indentes pas ton code... c'est illisible...
0
VersLeBut Messages postés 25 Date d'inscription jeudi 2 juillet 2009 Statut Membre Dernière intervention 11 février 2010
8 déc. 2008 à 14:01
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 

                         

                          


 
0
Rejoignez-nous