C++ et fichiers

Bonjour,

Je developpe en C++ depuis peut et je suis un peu pris par le temps je fais actuellement un programme de gestion :
ce programme en console permet de stocker des infos sur des employer :
Leur nom , prenom ,age, date de naissance,e-mail,et autre
mais je n'ai pas le temps de me pencher sur le probleme etmes competence sont encore limité , donc ma question est ; quel serait le code ki me permettrer douvrir un fichier contenant ces infos et de les affiche dans la console avec une certaines presentation ; et de les editer

6 réponses

  1. Salut,

    Voici un excellent turoriel qui te permettra d'apprendre rapidement à manipuler les fichiers en C / C++ :

    https://openclassrooms.com/fr/courses/19980-apprenez-a-programmer-en-c/16421-lire-et-ecrire-dans-des-fichiers

    Exemple pour afficher ligne par ligne le contenu de "fichier.txt" :
    FILE* fichier = NULL;
    fichier = fopen("fichier.txt", "r");
    char ligne [100];
    while(fgets(ligne, 100, fichier)){
    cout << ligne;
    }
    fclose(fichier);

    Exemple pour réécrire complètement "fichier.txt" :
    FILE* fichier = NULL;
    fichier = fopen("fichier.txt", "w");
    char nouveau_texte [] = "Hello world !";
    fprintf(fichier, "%s", nouveau_texte);
    fclose(fichier);

    Pour ne pas réécrire complètement mais seulement ajouter à partir de la fin, remplace par cette ligne :
    fichier = fopen("fichier.txt", "a");
    Toutes les infos, codes et explications sont dans le tuto :)
    1
    1. Contributeur
      Salut.
      La méthode de Bilow est correcte et fonctionne mais c'est du C. Si tu fait du C++, utilise les fonctions C++ :
      #include <fstream>
      std::fstream fichier;
      fichier.open("fichier.txt",std::ios::in);
      while (fichier)
       {
            fichier>>ligne;
            cout<<ligne;
       }
      fichier.close();
      1
      1. En C++, le code que j'ai donné fonctionne, non ? Pourrais-tu m'expliquer la différence stp ? :)
        0
      2. Contributeur
        Salut.
        Ta première question, j'y répond dans ma première phrase.
        Le C++ a été conçu, plus ou moins, comme une surcouche du C. C'est à dire qu'il y a beaucoup de compatibilité entre les deux et qu'il est possible d'utiliser des fonctions C en C++.
        Ce que tu écris (à par le cout) est valable en C. Mais le C++ introduit une nouvelle façon, plus objet, de gérer les fichiers, c'est ce que j'ai écris.
        Pour utiliser au mieux les fonctionnalités du C++ (plus haut niveau que le C), mieux vaut utiliser ce qui est recommandé.
        C'est une histoire de style et de norme, pas de fonctionnement.
        0
      3. Merci ! C'est pourtant la première fois que je vois un code comme le tien...
        0
    2. Salut,

      Tu demandes d'abord à l'utilisateur son nom. Tu as deux variables, le nom et le prénom. Tu copies le nom dans une autre variable, tu y ajoutes .frp et c'est fait !

      // On a 'nom', 'prenom' et 'fichier' 
      char nomFichier [30]; 
      sprintf(nomFichier, "%s.frp", nom); 
      fichier = fopen(nomFichier, "---methode---"); 
      // Et là tu manipules.

      ;-)

      Ps : L'ouverture du fichier est en C, si tu le veux en C++ à toi de voir.
      1
      1. Merci beaucoup de votre aide
        0
        1. pour rentrer du texte dan un fichier comment faut t'il faire ? :

          // CODE
          printf("NOM ? ");
          scanf("%d", &nom);
          fprintf(fichier, "NOM : %d", nom);
          fclose(fichier);

          ==> NOM : 0
          0
          1. Et la variable "fichier" tu la déclares où ?
            0
          2. FILE* fichier = NULL;
            au debut de la Fn
            0
          3. Oki ;)
            En théorie ton code fonctionne correctement, si tu as ouvert la variable fichier avec l'option "a" ou w" (ou encore "a+" et "w+"). Et si tu souhaites coder orienté objet, donc en bon C++, regarde la réponse de Char Snipeur. Ca va?
            0
          4. jai utilisé vos code , mais :

            -je n'arrive pas a donné comme nom a mon fichier , la valeur nom ,
            et
            -dans mon fichier il y a ecrit NOM : 0
            au lieu de ; NOM : PAULLE
            0
          5. Contributeur
            pffff... Quand on sais pas lire un exemple. ça m'étonnerai que tu es eu le problème avec la version C++ de lecture, ou alors il faut que tu me donnes ça.
            Ton problème viens de %d qui lit un entier et non une chaine.
            0
        2. Mais alors quel serait le code pour que je puisse obtenir ceci

          //Console

          Nom : PAULLE // je rentre le nom
          Prenom : James // je rentre le prénom

          //fichier PAULLE.frp

          Nom : PAULLE // dans le fichier frp , il y a ecrit
          // le nom entrer précédemment
          Prenom : James // Prenom entrer précédemment

          et je voudrais que "PAULLE.frp" du moins "PAULLE" varie selon le nom que j'entre , si j'entre Nom : LONIDES , alors un fichier LONIDES.frp est créé , et , il contiendrai les informations entrer precedement

          Merci de vos future reponse
          0