IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

entrer une structure dans un fichier et inversement


Sujet :

C

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 8
    Points : 4
    Points
    4
    Par défaut entrer une structure dans un fichier et inversement
    voila bonjour a tous et bonne annee ainsi qu'une bonne sante et tout le reste
    j'ai un petit probleme bon voila alors je dois faire un programme composé de plusieurs structures (une allocation dynamique de structures dans une structure enfin bon un truc assez eembetant et ca donne un truc dans ces eaux la (ce n'est qu un exemple)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    int main();
    typedef struct personne{
    int taille;
    char groupesanguin[2];
    int poids;
    ...;
    }personne;
     
    typedef struct groupe{
    char nomgroupe[50];
    personne* P;
    ...;
    }groupe
    ;

    [edit] : voila pour les points virgules mais je les mets toujours a la fin

    voila comme vous pouvez le voir il y a des entiers, des caractères et des tableau aloués dynamiquement ou pas
    alors mon probleme se situe dans le fait de rentrer le tout dans un fichier texte (.txt)
    bon pour passe de la structure au fichier je peut en core me debrouiller avec les fprintf et des boucles au bons endroits en separant dans cet exemple les personnes par des '*' et en utilisant une ligne par groupe
    mais le probleme sera de passer du fichier aux structures car je ne sais pas quel instruction ou operateur utiliser pour lire entre deux etoiles par exemple et de le "reconvertir" en un entier ou un carctere dans la structure
    voila j'espere que vous avez compris mon probleme et si vous avez des question n'hesiter pas a me les poser merci

  2. #2
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    Tu as écris avec fprintf, comme se fait-il que tu ne sois pas au courant de l'existence de fscanf ? D'ailleurs t'as encore l'air de ne pas savoir où mettre des point-virgules et où ne pas mettre. Tu reviendras surement poser de nouvelles questions sur l'utilisation de fscanf car c'est une fonction difficile à utiliser (pas fscanf seulement mais toutes les fonctions de la même famille : scanf, fscanf, sscanf, etc.). Utilise donc plutôt fgets + strtok.
    Lire une ligne avec fgets.
    La fonction strtok.

    Si le fichier n'a pas besoin d'être portable, tu peux également écrire directement une structure dans un fichier ouvert en mode binaire à l'aide de fwrite. La lecture se fait avec fread.

  3. #3
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 943
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 943
    Points : 5 655
    Points
    5 655
    Par défaut
    Kie,
    Citation Envoyé par Melem Voir le message
    Si le fichier n'a pas besoin d'être portable, tu peux également écrire directement une structure dans un fichier ouvert en mode binaire à l'aide de fwrite. La lecture se fait avec fread.
    Mais une des structures contient au moins un pointeur, ce qui exclut le binaire simple.
    Si les cons volaient, il ferait nuit à midi.

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    ok merci pour la fonction strtok je suis en train d'essayer de l'utiliser en l'adaptant a mon fichier

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    voila g un autre probleme que je n'arrive pas a resoudre :
    par exemple comme precedent prenons la structure groupe, si je veux en creer plusieurs de groupes je fais un tableau de structures groupe :
    groupe G[60]
    mais si par exemple j'ai deja creer un nombre x de groupes dans mon tableau, comment est ce que je peux faire pour determiner a quelle "case" du tableau j'en suis pour inscrire un x ieme groupe ?
    merci

  6. #6
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut
    Citation Envoyé par gariandu60 Voir le message
    voila g un autre probleme que je n'arrive pas a resoudre :
    par exemple comme precedent prenons la structure groupe, si je veux en creer plusieurs de groupes je fais un tableau de structures groupe :
    groupe G[60]
    mais si par exemple j'ai deja creer un nombre x de groupes dans mon tableau, comment est ce que je peux faire pour determiner a quelle "case" du tableau j'en suis pour inscrire un x ieme groupe ?
    merci
    En mémorisant dans une variable l'indice où on a écrit la dernière structure (ce qui permet également de tester qu'on écrit pas au delà du tableau réservé)
    Publication : Concepts en C

    Mon avatar : Glenn Gould

    --------------------------------------------------------------------------
    Une réponse vous a été utile ? Remerciez son auteur en cliquant le pouce vert !

Discussions similaires

  1. Réponses: 8
    Dernier message: 02/12/2007, 02h03
  2. Réponses: 9
    Dernier message: 04/06/2007, 21h44
  3. Réponses: 17
    Dernier message: 09/03/2007, 18h13
  4. stocker une structure dans un fichier ini?
    Par Mickey.jet dans le forum C
    Réponses: 6
    Dernier message: 13/09/2006, 16h57
  5. copier une structure dans un fichier
    Par brute dans le forum MFC
    Réponses: 18
    Dernier message: 10/03/2006, 14h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo