begin process at 2012 05 29 12:51:07
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

[c] pour les motivés ,structurer un fichier


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

[c] pour les motivés ,structurer un fichier

vendredi 14 mai 2004 à 18:03:18 | [c] pour les motivés ,structurer un fichier

Diony

bonjour , voici mon programme . je n arrive pas a structurer mon fichier a cause de la fonction inserer_recette_fin_liste qui doit normalement inserer un maillon recette a la fin de la liste mais voila ca plante, j ai mis une pause entre chaque étape, pour voir d ou venait le probleme , et a priori ca plante après le malloc compris dans la fonction.je commence a etre bien perdu, pouvez m aider .si vous voyez des choses incohérentes par hasard , pouvez vous me les signaler.merci d avance.




#include <stdio.h>
#include <stdlib.h>
#include <string.h>


typedef struct recette { char * nom;
struct ingredient * liste_ing;
char * tps;
char * facon;
struct recette * rec_suiv;
}recette;

typedef struct ingredient {char * nom_ing;
char * quantite;
struct ingredient * ing_suiv;
}ingredient;

typedef struct recette * liste_recettes;

typedef struct ingredient * liste_ing;

/*void creer_ingredient(char p
else{i.nom_ing=NULL;
i.quantite=NULL;
i.ing_suiv=NULL;}
}*/


void creer_ingredient(char t0[1000], liste_ing ing){

if (t0[1000]!=':'){
ing=(liste_ing)malloc(sizeof(ingredient));
ing->nom_ing=strtok(NULL,",");
printf("%s\n",ing->nom_ing);
ing->quantite=strtok(NULL,";");
printf("%s\n",ing->quantite);
system ("PAUSE");

creer_ingredient(t0,ing->ing_suiv);
}
else {printf("nothing");
}
}

void inserer_recette_fin_liste(char a[1000],liste_recettes *l) {
char t0[1000];
strcpy(t0,a);
if (l==NULL) {

printf("%s \n",t0);
system("PAUSE");

(*l)=(liste_recettes )malloc(sizeof(recette));

(*l)->nom=strtok(t0,":");//renvoie le string situé avant le premier :
printf("%s\n",(*l)->nom);
system("PAUSE");

creer_ingredient(t0,(*l)->liste_ing);
system("PAUSE");

(*l)->tps=strtok(NULL,":");
printf("%s \n",(*l)->tps);
system("PAUSE");

(*l)->facon=strtok(strrchr(t0,':'),"\n");
printf("%s \n",(*l)->facon);
system("PAUSE");

(*l)->rec_suiv=NULL;
system("PAUSE");
}


else inserer_recette_fin_liste(t0,&((*l)->rec_suiv));
}

void effacer_tab(char t[1000]){
int i;
for (i=0;i<strlen(t);i++) {
t[i]=' ';}
t[0]='\0';}


void structure (liste_recettes *l) {
FILE *r;
char a[1000],c;
int i=0;
r= fopen ("recettes.dat", "r");
if (!r) {printf ("*** Impossible d'ouvrir le fichier ***\n");
system("PAUSE");
//menu();
}
else {while(!feof(r)) {

do { c=fgetc(r);
a[i]=c;
i++;} while (c!='\n');
printf("%s \n\n",a);
system("PAUSE");
inserer_recette_fin_liste(a,l);
i=0;
effacer_tab(a);
}}
}


int main()
{
liste_recettes *l;
l=NULL;
structure(l);
}
vendredi 14 mai 2004 à 19:22:58 | Re : [c] pour les motivés ,structurer un fichier

djl


dans ta fonction tu fait au debut char t0[1000]; c'est tres dangereux, fait plutot

char *t0;
t0=malloc(1000);
vendredi 14 mai 2004 à 21:32:17 | Re : [c] pour les motivés ,structurer un fichier

Diony


merci djl c sympa , mais pour linstant ca résoud pas beaucoup mon problème.je le changerai après.le to[1000] est pas définitif.
vendredi 14 mai 2004 à 21:52:48 | Re : [c] pour les motivés ,structurer un fichier

djl


ben le probleme est simple, tu alloue pas les buffer de tes structures

accorde toi quelque facilité d'ecriture

void effacer_tab(char t[])

if (!r) {printf ("*** Impossible d'ouvrir le fichier ***\n");
system("PAUSE");
return;
}

malloc(sizeof ingredient);
vendredi 14 mai 2004 à 23:19:19 | Re : [c] pour les motivés ,structurer un fichier

Diony


ok djl
c bon , en refaisant toute ma fonction g resolu le pb.
merci kan meme a toi.t le seul a m avoir répondu.


Cette discussion est classée dans : liste, char, pause, recette, ing


Répondre à ce message

Sujets en rapport avec ce message

[c] plantage du program,base 2 donné, surmen un pb de struct [ par Diony ] jvous explique mon probleme . ce programme est une base de données de recettes . et il plante a la fonction inserer_recette_fin_liste (vers le milieu [c] erreur malloc (incompatible types in assignment) [ par Diony ] voici mon programme : #include #include #include typedef struct recette { char * nom; struct ingredient * ing; Problème de chainage dans un tableau dynamique [ par hachure1 ] Voila ce bout de code qui extrait les données d'un graphe dans un fichier et stoke cela dans un tableau dynamique contenant de sommets ou chaque case sprintf, combien de mémoire à alloué ??? [ par Polack77 ] Bonjour, J'ai un [size=50]petit[/size] problème dans une fonction toute bête (et sa commence à me courir sérieusement). Je veut construire une fonct Trie liste de saisit sans passer par une insertion [ par Nexouille ] Voila je dois a partir d'un fichier prendre toute les ip qui s'y trouve dont on ne connait pas le nombre et je dois compter combien de fois elles appa problème d'execution!!! [ par theidiot ] Bonjours,je suis débutant en programmation et je suis présentement dans l'apprentissage des tableaux dynamiques.J'ai fait un carnet d'adresse(avec les Sélection "intelligente" ComboBox [ par SebDeBib ] Salut, j'ai une ComboBox, type DropDown, càd où je peux rentrer du texte ou saisir dans la liste... C'est une fenêtre de liste de recettes. Au début, conversion int en char* [ par arwenita ] Encore un petit problème en C++...Dans mon programme, je voudrais afficher une liste de nombres (premiers), que je récupère de la fonction Crible(n).L probleme avec une fonction de jointure des éléments de liste [ par cyrina84 ] bonjour à tous, j'ai un gros probleme dans ma fonction en Ccette fonction pren en entrée une liste chainée qui contient des couples de mots (exemple:


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,842 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales