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 :

ouvrir lire charger fichier


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 24
    Par défaut ouvrir lire charger fichier
    Slt,

    est-ce que qq1 a un exemple de code ou l'on ouvre un fichier .txt dans lequel on a des valeurs, ensuite on le lit, puis on charge ces valeurs dans un vector<>?

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    717
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 717
    Par défaut
    Avec les stream_iterator c'est très simple, tu peux charger les valeurs directement dans le vecteur. Par exemple pour des int :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    #include <fstream>
    #include <vector>
    #include <iterator>
    #include <iostream>
     
    int main()
    {
      std::ifstream fichier("mon_fichier.txt");
      std::vector<int> valeurs(
        (std::istream_iterator<int>(fichier)),
        std::istream_iterator<int>());
      if (!fichier.eof())
        std::cerr << "Erreur de lecture !\n";
    }

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 51
    Par défaut
    Citation Envoyé par Sylvain Togni Voir le message
    Avec les stream_iterator c'est très simple, tu peux charger les valeurs directement dans le vecteur. Par exemple pour des int :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    #include <fstream>
    #include <vector>
    #include <iterator>
    #include <iostream>
     
    int main()
    {
      std::ifstream fichier("mon_fichier.txt");
      std::vector<int> valeurs(
        (std::istream_iterator<int>(fichier)),
        std::istream_iterator<int>());
      if (!fichier.eof())
        std::cerr << "Erreur de lecture !\n";
    }

    Salut a tous, j'ai une question concernant ces commandes a laquelle je ne trouve pas de réponse. Je veux également lire un fichier txt, mais le fichier a ouvrir n'est pas connu a la compilation, et je veux laisser l'utilisateur rechercher sur le disque le fichier, de la même manière que lorsque l'on clique sur le bouton "ouvrir" dans la plupart des programme...
    Une idée ?

  4. #4
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Salut,
    Citation Envoyé par galadorn Voir le message
    Salut a tous, j'ai une question concernant ces commandes a laquelle je ne trouve pas de réponse. Je veux également lire un fichier txt, mais le fichier a ouvrir n'est pas connu a la compilation, et je veux laisser l'utilisateur rechercher sur le disque le fichier, de la même manière que lorsque l'on clique sur le bouton "ouvrir" dans la plupart des programme...
    Une idée ?
    C'est *relativement* simple:

    1- tu récupère le nom du fichier à ouvrir dans une chaine de caractères (std::string, par exemple, c'est l'idéal )
    2- tu transmet cette chaine en veillant à la passer sous la forme d'une chaine "C style" (c'est une vieille restriction des *fstream) au constructeur, en lieu et place de "fichier.txt".

    Cela te donne, par 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()
    {
        std::string str;
        /* récupération du nom de fichier dans str... à toi de voir comment
         * faire selon la bibliothèque IHM que tu utilise :D
         */
       std::ifstream fichier(str.c_str());
       std::vector<int> valeurs( (std::istream_iterator<int>(fichier)),
                                   std::istream_iterator<int>());
      if (!fichier.eof())
        std::cerr << "Erreur de lecture !\n";
     
    }
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 51
    Par défaut
    merci !

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 51
    Par défaut
    hum encore une question qui va pas être très dur a solutionner je pense, enfin je l'espère en tout cas ^^

    j'ai écrit dans mon code :
    std::ofstream fichier("C:\test.txt", ios::app);
    fichier>>"n importe quoi";

    mais rien ne se passe, le fichier n'est même pas créé.
    Si je créé un fichier nomé test.txt au bon emplacement, rien ne s'écrit dessus, même quand celui ci est fermer. Qu'ai-je fait de mal ?

Discussions similaires

  1. Ouvrir et lire un fichier .csv
    Par Art19 dans le forum Composants VCL
    Réponses: 24
    Dernier message: 23/05/2025, 11h13
  2. Lire un fichier avec la boite de dialogue Ouvrir
    Par Death83 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 28/11/2007, 16h34
  3. Ouvrir, lire, écrire, ferme fichier .txt
    Par greg26 dans le forum VB.NET
    Réponses: 13
    Dernier message: 19/09/2007, 17h12
  4. ouvrir et lire un fichier sur serveur distant
    Par coco441 dans le forum C++
    Réponses: 4
    Dernier message: 04/09/2007, 13h26
  5. Réponses: 5
    Dernier message: 11/01/2004, 20h17

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