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 :

Probleme avec une fonction ofstream [C++]


Sujet :

C++

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Novembre 2012
    Messages : 5
    Points : 1
    Points
    1
    Par défaut Probleme avec une fonction ofstream [C++]
    Salut tous le monde,
    je dois realiser un programme qui enregistre les données d'un tableau dans un fichier txt, mais j'ai un probleme avec la fonction ofstream
    j'ai realiser ce code mais ça plante
    sachant que si j'enregistre un string normale ça marche
    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    #include <iostream>
    #include <fstream>
     
    using namespace std;
     
    struct date_n{
     
        int jour;
        int mois;
        int annee;
    }; //structure date
    struct stag{
     
        string nom;
        string prenom;
        date_n date_naissance;
    }; 
    void enrg(stag stagiaire[10]) //fonction contenant ofstream
    {
        for (int i=0;i<10;i++)
        {
            ofstream test("stagiaire.txt",ios::in|ios::app);
            test << "Nom: "<< stagiaire[i].nom<<endl;
            test << "Prenom: "<< stagiaire[i].prenom<<endl;
            test << "Date de naissance: "<< stagiaire[i].date_naissance.jour<<"/"<<stagiaire[i].date_naissance.mois<<"/"<<stagiaire[i].date_naissance.annee<<endl<<endl;
            test.close();
        }
    }
    int main()
    {
     
     
        stag stagiaire[10];
        for (int i=0; i<10;i++)
        {
            cout << "Stagiaire numero "<<i+1<<endl;
            cout << "Entrez le nom: ";
            cin >> stagiaire[i].nom;
            cout << "Entrez le prenom: ";
            cin >> stagiaire[i].prenom;
            cout <<"Entrez la date de naissance: "<<endl;
            cout << "Jour: ";
            cin >> stagiaire[i].date_naissance.jour;
            cout << "Mois: ";
            cin >> stagiaire[i].date_naissance.mois;
            cout << "Annee: ";
            cin >> stagiaire[i].date_naissance.annee;
        }
        cout <<"\n*********** LISTE DES STAGIAIRES ***********\n"<<endl;
        for (int i=0;i<10;i++)
        {
            cout << "\tLe stagiaire "<<i+1<<endl;
            cout << "Nom: "<< stagiaire[i].nom<<endl;
            cout << "Prenom: "<< stagiaire[i].prenom<<endl;
            cout << "Date de naissance: "<< stagiaire[i].date_naissance.jour<<"/"<<stagiaire[i].date_naissance.mois<<"/"<<stagiaire[i].date_naissance.annee<<endl<<endl;
        }
        enrg(&stagiaire[10]); //appel de la fonction
        return 0;
    }
    Merci de m'aidez

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    Ton problème vient de cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    enrg(&stagiaire[10]); //appel de la fonction
    Tu prends l'adresse du 11ème élément alors que tu n'en as que 10 ! Qui n'existe donc pas, et tu vas même chercher les 9 suivants dans ta fonction
    Rentre celle du premier : enrg(&stagiaire[0]); ou plus simplement enrg(stagiaire);.

    Remarque :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
        for (int i=0;i<10;i++)
        {
            ofstream test("stagiaire.txt",ios::in|ios::app);
            test << "Nom: "<< stagiaire[i].nom<<endl;
            test << "Prenom: "<< stagiaire[i].prenom<<endl;
            test << "Date de naissance: "<< stagiaire[i].date_naissance.jour<<"/"<<stagiaire[i].date_naissance.mois<<"/"<<stagiaire[i].date_naissance.annee<<endl<<endl;
            test.close();
        }
    Plutôt que d'ouvrir/fermer ton fichier à chaque itération, ouvre-le avant la boucle, et ferme-le après

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Novembre 2012
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Oh mercii ça fait 2 jours que je cherche le probleme! merci infiniment

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 25/09/2006, 12h06
  2. Réponses: 7
    Dernier message: 16/08/2006, 11h55
  3. [C#] probleme avec une fonction recursive
    Par K_!!! dans le forum ASP.NET
    Réponses: 2
    Dernier message: 01/08/2006, 19h22
  4. probleme avec une fonction enable() toute simple !!
    Par K_!!! dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 19/05/2006, 16h10
  5. [LG]Probleme avec une fonction
    Par xavier1936 dans le forum Langage
    Réponses: 7
    Dernier message: 08/02/2005, 23h48

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