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 :

Enregistrer les informations saisies dans un fichier ?


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2007
    Messages
    489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Qatar

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2007
    Messages : 489
    Par défaut Enregistrer les informations saisies dans un fichier ?
    Bonsoir,

    J'ai écris un programme qui gère disons une classe avec nom prenom code étudiant ....
    Il fonctionne bien sous dos quand je saisie les informations d'un étudiant il sont enregistrer d'une façon temporaire seulement.

    J'ai envi d'enregistrer ma saisie dans un fichier et pouvoir la charger la prochaine fois que j'exécute le programme.

    Voici ma fonction qui marche pas ....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    //Enregistrer les etudiants dans un fichier
     
    void enregistrer_fichier(struct elt *c,char *NomFic)
    {
        int nb;
        FILE *fic;
        fic=fopen(NomFic,"at");
        if(c != NULL)
        {
            nb=ajouter_etudiant(start,NOM,PRENOM,date_naissance,matricule,budget);
            fwrite(&nb,sizeof(char),1,fic);
            fclose(fic);
        }
    }
    Le programme ne reconnait pas arguments de ma fonction ajouter_etudiant précédemment définie.

  2. #2
    Membre très actif Avatar de yetimothee
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    260
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 260
    Par défaut
    T'as bien défini tes prototypes de fonctions ?
    Dis nous comment ton code est organiser, sinon ça va pas être simple

  3. #3
    Membre éclairé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2007
    Messages
    489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Qatar

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2007
    Messages : 489
    Par défaut
    oui bien sur les prototypes sont définies !

    Tu as besoin de quoi au juste ?
    le main ??

  4. #4
    Membre éprouvé Avatar de yakamoneye
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    108
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 108
    Par défaut
    Le mode d'ouverture "at" n'est pas standard.

    Le programme ne reconnait pas arguments de ma fonction ajouter_etudiant précédemment définie.
    Postes son code !

  5. #5
    Rédacteur
    Avatar de darrylsite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 299
    Par défaut
    Citation Envoyé par OthmanX Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    int nb;
    ...
            fwrite(&nb,sizeof(char),1,fic);
    ???

  6. #6
    Membre éclairé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2007
    Messages
    489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Qatar

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2007
    Messages : 489
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    struct elt *ajouter_etudiant(struct elt *start,char *NOM,char *PRENOM,char *date_naissance,char* matricule,char *budget)
    {
    	struct elt *tmp=malloc(sizeof(struct elt)), *p_tmp;
    	strcpy(tmp->nom,NOM);
        strcpy(tmp->prenom,PRENOM);
        strcpy(tmp->date_naissance,date_naissance);
    	strcpy(tmp->matricule,matricule);
        strcpy(tmp->budget,budget);
    	tmp->suivant=NULL;
     
    	if(start==NULL)
    	{
    		start=tmp;
    	}
    	else
    	{
    		p_tmp=start;
    		while(p_tmp->suivant!=NULL)
    			p_tmp=p_tmp->suivant;
    		p_tmp->suivant=tmp;
    	}
    	return start;
    }
    C'est ma fonction ajouter_etudiant ( l'enregistrer en quelques sortes sous dos )

    PS: j'ai toujours pas inclus la fonction enregistrer fichier..

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juin 2008
    Messages : 17
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    //Enregistrer les etudiants dans un fichier
     
    void enregistrer_fichier(struct elt *c,char *NomFic)
    {
        int nb;
        FILE *fic;
        fic=fopen(NomFic,"at");
        if(c != NULL)
        {
    Il faudrait peut etre vérifier que fic n'est pas nul non plus. Et dans les paramètres de fopen , plutôt utiliser "a" que "at".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
            nb=ajouter_etudiant(start,NOM,PRENOM,date_naissance,matricule,budget);
            fwrite(&nb,sizeof(char),1,fic);
            fclose(fic);
        }
    }
    dans le fwrite, si tu veux vraiment écrire la valeur de nb, c'est sizeof(int) qu'il faut mettre.

    ++

  8. #8
    Membre éclairé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2007
    Messages
    489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Qatar

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2007
    Messages : 489
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    void enregistrer_fichier(struct elt *c,char *NomFic)
    {
        char nb;
        FILE *fic;
        fic=fopen(NomFic,"w");
        if(c != NULL)
        {
            nb=ajouter_etudiant(start,NOM,PRENOM,date_naissance,matricule,budget);
            fwrite(&nb,sizeof(char),1,fic);
            fclose(fic);
        }
    }
    j'ai mis comme type de lecture "w" c'est mieux.

    nb recevra des char ( nom, prenom, date_naissance ... )

    j'ai modifié pour mettre sizeof(char)

  9. #9
    Membre éprouvé Avatar de yakamoneye
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    108
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 108
    Par défaut
    nb recevra des char ( nom, prenom, date_naissance ... )
    ???

  10. #10
    Membre éprouvé Avatar de yakamoneye
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    108
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 108
    Par défaut
    Pourquoi tu ne fais pas un fprintf des divers champs que contient la strcture ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    fprintf( fic, "%s", elt->NOM);
    [...]

  11. #11
    Membre éclairé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2007
    Messages
    489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Qatar

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2007
    Messages : 489
    Par défaut
    j'ai du mal à m'expliquer

    Je reviens plus tard.

    Merci.

  12. #12
    Rédacteur
    Avatar de darrylsite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 299
    Par défaut
    Citation Envoyé par OthmanX Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    void enregistrer_fichier(struct elt *c,char *NomFic)
    {
        char nb;
        FILE *fic;
        fic=fopen(NomFic,"w");
        if(c != NULL)
        {
            nb=ajouter_etudiant(start,NOM,PRENOM,date_naissance,matricule,budget);
            fwrite(&nb,sizeof(char),1,fic);
            fclose(fic);
        }
    }
    j'ai mis comme type de lecture "w" c'est mieux.

    nb recevra des char ( nom, prenom, date_naissance ... )

    j'ai modifié pour mettre sizeof(char)
    ajouter_etudiant() renvoie un "struct elt*" et non un int ou un char.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     nb=ajouter_etudiant(start,NOM,PRENOM,date_naissance,matricule,budget);
    Aussi, en mode binaire, on doit ouvrir le fichier avec "wb ou rb".

Discussions similaires

  1. Réponses: 4
    Dernier message: 11/08/2010, 16h11
  2. récuperer les champs saisi dans un fichier
    Par wrigan dans le forum Langage
    Réponses: 1
    Dernier message: 06/12/2009, 12h40
  3. [AC-2000] Controler les informations saisies dans une zone de texte
    Par etoileetoile dans le forum VBA Access
    Réponses: 2
    Dernier message: 07/10/2009, 14h33
  4. Réponses: 3
    Dernier message: 06/07/2007, 09h49
  5. Réponses: 5
    Dernier message: 16/03/2005, 22h17

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