Chargement d'une liste chainée à partir d'un fichier
khalil
-
Modifié par BunoCS le 31/12/2013 à 09:16
nagaD.scar
Messages postés4272Date d'inscriptionsamedi 8 septembre 2007StatutMembreDernière intervention 4 janvier 2023
-
14 janv. 2014 à 14:47
Bonjour,
jé cré un prog l'un de ses fonctions charger une liste w sauvegarder une liste dans un fichier jé eu un probleme dans la fct du chargement
voici les 2 fction je pveut savoir quel est la menace .
#include <stdio.h>
#include <stdlib.h>
#include "struct.h"
int sauvegarder(liste L)
{
stock* p;
p=L.head;
FILE *fichier;
fichier = fopen("Fstock.txt", "w+");
int i;
if (fichier == NULL)
{
printf("Impossible d'ouvrir le fichier");
exit(0);
}
else
{
if(p==NULL)
{
printf("la liste est vide");
}
else
{
i=1;
while(p!=NULL)
{
fprintf(fichier,"\n%d",i);
fprintf(fichier, "\n%ld ",p->identifiant);
fprintf(fichier, "\n%s ", p->nom);
fprintf(fichier, "\n%s ", p->type);
fprintf(fichier, "\n%d ", p->nombre);
p=p->next;
i++;
}
}
}
fclose(fichier);
printf("%d",i);
system("echo Sauvgarde en cours\nsleep 0.5\necho .\nsleep 0.5\necho .\nsleep 0.5\necho .\nsleep 0.5");
return 0;
}
int charger(liste* L)
{
int i;
stock* p;
p=(stock*)malloc(sizeof(stock));
FILE* fichier = NULL;
fichier = fopen("Fstock.txt", "r+");
if (fichier == NULL)
{
printf("Impossible d'ouvrir le fichier");
return EXIT_FAILURE;
}
else
{
//chargement du contenu du fichier dans les structures
do
{
fscanf(fichier, "\n%ld ",p->identifiant);
fscanf(fichier, "\n%s ",&p->nom);
fscanf(fichier, "\n%s ",&p->type);
fscanf(fichier, "\n%d ",p->nombre);
fscanf(fichier,"\n%d ",i);
if(L->head==NULL)
{
L->head=p;
L->tail=p;
p->next=NULL;
}
else
{
p->next=L->head;
L->head=p;
}
}while(fgetc(fichier) != EOF);
}
fclose(fichier);
return 0;
}
BunoCS
Messages postés15475Date d'inscriptionlundi 11 juillet 2005StatutModérateurDernière intervention23 avril 2024103 Modifié par BunoCS le 31/12/2013 à 09:17
Hello,
J'ai édité ton message pour rajouter les balises code. Merci d'y penser la prochaine fois ;) (plus d'infos ici)
Edit: je déplace également ta demande dans la section C, car ton code n'est pas du C#
@+
Buno, Modo CS-CCM
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
The urgent is done, the impossible is underway. For miracles, envisage a time ...
nagaD.scar
Messages postés4272Date d'inscriptionsamedi 8 septembre 2007StatutMembreDernière intervention 4 janvier 202317 14 janv. 2014 à 14:47
salut,
un petit effort d'écriture serai la bienvenue, je suis pas sûr d'avoir bien compris tous les "mots" (je fais des fautes , je me fous qu'il y ai une orthographe et grammaire parfaite, mais un effort d'écriture quand vous avez besoin d'aide est à mon avis un minium).
Bon sinon c'est quoi la question? car "j'ai eu un problème" ne risque pas de nous donner de quoi taffer, et "quelle est la menace" veut dire ? on ne connait pas la définition de ta liste (ou des objets qui la composent, on peu juste les supposer avec les sprintf).
un exemple avec une présentation de l'erreur que tu as rencontré est un minimum si tu souhaite de l'aide.
tout ce que je peux dire c'est qu'il est étrange que tu écrive ton curseur en entête mais qu'à la lecture, tu le prend en dernier ..