Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Fichier + liste chainée [ Windows / Fichier & Disque ] (Evisu)

mardi 10 juin 2008 à 20:49:49 | Fichier + liste chainée

Evisu

Bonsoir,

J'ai une question concernant l'écriture et la lecture de liste chainée dans un fichier.data

J'ai une structure PERS qui contient des infos (nom , âge et adresse de l'élément suivant) :

struct PERS {
    char nom[20];
    int age;
    struct PERS *psvt;
};


Ensuite , 2 fonctions , une pour ajouter des éléments et une autre pour afficher le contenu de la liste.

int Ajout(struct PERS *liste , FILE *fp)
{
       boucle pour saisir le nom et l'âge + malloc pour nouvel élément.
       un fwrite
}

void afficher (FILE *fp)
{
       un fread
       boucle pour afficher le contenu de la liste chainée
}



Je ne sais pas quels arguments donner à mon fwrite et fread.

D'avance merci.

mardi 10 juin 2008 à 21:02:32 | Re : Fichier + liste chainée

jfrancois

Bonsoir,

Si tout se passe directement avec un fichier il n'y a pas de liste chaînée ! Le pointeur psvt ne sert à rien. Aucun malloc n'est nécessaire.

Jean-François


mardi 10 juin 2008 à 21:12:32 | Re : Fichier + liste chainée

Evisu

Ok merci.

Mais imaginons que j'ai un fichier.dat déjà créé et que je dois rapatrier les données qui se trouvent sur le fichier dans une liste chainée basée sur :

struct PERS {
    char nom[20];
    int age;
    struct PERS *psvt;
};


Dans ma fonction qui lit les données sur le fichier , je ne vois pas comment je dois faire avec mon fread..

mardi 10 juin 2008 à 21:19:02 | Re : Fichier + liste chainée

omnia

salut,

tu lit le contenu complet de ton fichier dans un buffer de la taille de ton fichier

void *buffer;

buffer = malloc....

ensuite tu fait un transtipage

(*PERS)buffer[0].nom

...

voila

mardi 10 juin 2008 à 21:25:39 | Re : Fichier + liste chainée

jfrancois

Pour lire le fichier (pointé par pFichier) structure par structure :

FILE* pFichier = fopen("fichier.dat","rb");
if (pFichier == NULL) return; // erreur à l'ouverture
while (1)
{
   struct PERS* pPers = (struct PERS*)malloc(sizeof(struct PERS));
   if (fread(pPers,sizeof(struct PERS),1,pFichier) != 1) break;
}
fclose(pFichier);

Il ne reste plus qu'à chaîner les pPers !

Mais on peut aussi lire le fichier, structure par structure ou entièrement, dans un tableau de structures PERS et il n'y a plus besoin du pointeur psvt.

Jean-François


mardi 10 juin 2008 à 21:34:29 | Re : Fichier + liste chainée

jfrancois

(*PERS)buffer[0].nom

((PERS*)buffer[0])->nom
ou
(*(PERS*)buffer[0]).nom


Jean-François


mardi 10 juin 2008 à 21:58:27 | Re : Fichier + liste chainée

Evisu

Merci pour votre aide, je vai essayer celà.



Cette discussion est classé dans : fichier, liste, pers, struct, chainée


Répondre à ce message

Sujets en rapport avec ce message

Lecture d'un fichier texte pour mettre dans une liste chainée [ par webgladiator ] Merci de prendre du temps à me lire.J'ai un projet d'info dont le but est d'effectuer le plus court itinéraire dans le metro parisien (opimisation).J' Répertoire téléphonique en Liste Chainée [ par REQVIEM ] Bonjour,Je suis en école d'ingé et on a un projet a réaliser en C. On doit réaliser un Répertoire téléphonique en Liste Chainée de structure à partir solution [ par amir09 ] 1- le TAD dont la signature incomplé est ci dessos décrit une structure des donnéparticulier FICHIER DE PERSONNE .Dans cette structure, les personne p Liste Chainée [ par trav225 ] Hi ToulmonD pleaz quelqu'un pourrait me trouver le code source d'une liste chainée de nom pairej'en ai vraiment besoinmerci de bien vouloir me repondr hotfolder, liste d'attente [ par shark1664 ] Bonjour, Je souhaiterai savoir si parmi vous quelqu'un sait où pourrais-je trouver un programme développé en C qui serait un genre de hotfolder. Je so liste chainée [ par skulls94 ] bonjour, je dois faire un  programme qui lit un fichier mot à mot et qui les stocke dans une liste chainée seulement si ils ne sont pas deja present.v ecrire une structure dans un fichier [ par draluorg ] Salut a tous,J'essai d'ecrire une structure dans un fichier mais apparement je dois mal m'y prendre...Voici mon code:#include typedef struct _MY_ST Recherche de la plus grand valeur dans une liste chainée [ par doudou0088 ] Bonjour, J'ai une liste chainé contenant une valeur entière pour chaque élément (environ 96 éléments). J'aimerai affiché l'entier le plus grand de cet Tri par insertion sur liste simplement chainée [ par Jordy89 ] Bonjour,Dans le cadre de la manipulation d'une liste chaînée, je suis amené à effectuer un tri; Je me suis renseigné à gauche et à droite, et il appar table de hachage et liste chainée [ par cyrina84 ] bonjour à tous, je voudrais bien  savoir  comment créer une application d'apprentissage automatique.on m'a demandé de réaliser une application qui per


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version


HTC G1

Entre 449€ et 449€


Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,484 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.