no save
Assistance
Achat
News

Forum | programmation
Langage C pointeurs, creation de liste.
Un Gars, le jeu. 30 mars 2006 à 12:58:36
Ouaaa !! Merci pour ce message très détaillé et structuré !

Donc en fait, entre temps, j'ai un peu avancé de mon côté, et j'ai juste réussi, à ma manière, à afficher le nombre de fiches que j'ai créées :)



#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define LGTXT 256



typedef struct Fiche
{
char Nom[256];
struct Fiche * Suivante;
}fiche;

typedef struct Dossier{
struct Fiche * debut;
struct Fiche * fin;
}dossier;

typedef struct Liste{
void * debut;
void * fin;
}liste;



Fiche*CreerFiche(char Texte[] )
{
fiche* ptrfiche=(fiche*)malloc(sizeof(fiche));
if(ptrfiche!=NULL)
{
strcpy(ptrfiche->Nom,Texte);
ptrfiche->Suivante=NULL;
}
else
{
printf("Memoire pleine");
}
return ptrfiche ;
}



int main()
{
int arret;
char reponse[256];
fiche* ptrnouveau;
fiche* ptrdebut;
int nombre;

arret = 1;
ptrdebut = NULL;
ptrnouveau = NULL;
nombre = 0;

do{
printf("Entrer le nom de la fiche.\n\nEntrer ''Fin'' pour terminer le programme.\n\n");
gets (reponse);
printf("\n\n\n");
if (strcmp(reponse,"Fin"))
{
ptrnouveau = CreerFiche(reponse);
ptrnouveau->Suivante = ptrdebut;
ptrdebut = ptrnouveau;
nombre++;
}
else arret=0;
}while(arret);

if(nombre>1) printf("Vous avez cree %d fiches.",nombre);
else printf("Vous avez cree %d fiche.",nombre);

getchar();
}



Voilà, par contre, je n'ai pas réussi à faire en sorte que le programme m'affiche ce que j'ai entré.

En fait, je vais donner un exemple de ce que je voudrais :)

J'entre le nom de la première fiche : aaa

J'entre le nom de la deuxième fiche : bbb

...

J'entre le nom de la n-ième fiche : xxx

J'entre "Fin"

Le programme m'affiche alors :

Vous avez entré n fiches.

Nom de la fiche 1 : aaa

Nom de la fiche 2 : bbb

...

Nom de la fiche n : xxx



Voilà voilà :)

Par ailleurs, j'ai étudié votre réponse, à savoir :



unsigned int affiche_liste(struct Fiche * f){
unsigned int nb_fiche;
for(nb_fiche=0;f;++nb_fiche){
printf("fiche %d : %s\n",f->nom);
}
return nb_fiche;
}



Mais je n'ai malheureusement absolument rien compris :)

Enfin voilà, finalement, il ne me reste plus qu'à afficher le nom de toutes les fiches que j'ai entrées.

Merci de votre aide ;)
Précédentmamiemando
mars 06
mamiemando
mars 06
Suivant
REPONSES
mamiemando
mars 06
Un Gars
mars 06
mamiemando
mars 06
Un Gars
mars 06
mamiemando
mars 06
Un Gars
mars 06
mamiemando
mars 06
Un Gars
mars 06
mamiemando
avr. 06
Drayell / Ank[58]f1x : Webmaster, Coder(C/C++, Asm), Designer
avr. 06
Version Web
Réalisé par RedShift
no save