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 :

Ecrire/Lire fichier texte


Sujet :

C++

  1. #21
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut
    Citation Envoyé par toutounesan Voir le message
    Je crois que j'ai oublié de fermer le fichier!
    Non c'est pas obligatoire en C++, le fichier.close(), tu le fais que si t'as besoin de le fermer à un endroit...

    EDIT :

  2. #22
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    559
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 559
    Par défaut
    Je récupère des choses mais ce n'est pas ce qu'il faudrait:


    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
     
    std::ofstream file1( "C://test.txt");
    	//int i=12;
    	//file1<<i;
    	CString toto;
    	toto="test";
    	file1<<toto;
    	file1.close();
     
     std::ifstream fichier( "C://test.txt" );
     
        if ( fichier ) // ce test échoue si le fichier n'est pas ouvert
        {
            std::string ligne; // variable contenant chaque ligne lue
     
            // cette boucle s'arrête dès qu'une erreur de lecture survient
            while ( std::getline( fichier, ligne ) )
            {
                // afficher la ligne à l'écran
                std::cout << ligne << std::endl;
            }
        }
    Merci de penser à la balise CODE koala01

  3. #23
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    559
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 559
    Par défaut
    quand je mets ce code j'ai un nombre à la place d'un String

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    std::ofstream file1( "C://test.txt");
    CString i;
    i="test";
    file1<<i;
    Pourquoi?

    merci de penser à la balise CODE
    koala01

  4. #24
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    #include <iostream>
    #include <fstream>
    #include <string>
     
    int main()
    {
        std::ofstream file1( "test.txt");
        std::string i = "test";
        file1 << i;
    }


  5. #25
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    559
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 559
    Par défaut
    Ca n'écrit rien danas le fichier!!!!!!!!!

  6. #26
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut
    Ce n'est pas possible, tu ne regardes pas le bon fichier ! Cf mes post du dessus, il s'agit du fichier testBonFichier.txt situé dans le même répertoire que ton éxécutable (ou ton dossier de travail sous Visual Studio).
    Essaye avec ce code là...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #include <iostream>
    #include <fstream>
    #include <string>
     
    int main()
    {
        std::ofstream file1( "testBonFichier.txt"); // autre nom
        std::string i = "test";
        file1 << i;
    }

  7. #27
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    559
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 559
    Par défaut
    C'est bon, ça marche. Merci!

    Maintenant je cherche à mettre 5 variables séparées par ; ou , pour que ce soit compatible avec excel.
    Il y a des int et des variables qui sont des chaines de caractères (en gros des string).

    Merci de m'aider.

  8. #28
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut
    Le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #include <iostream>
    #include <fstream>
    #include <string>
     
    int main()
    {
        std::ofstream file1( "testBonFichier.txt"); // autre nom
        int var1 = 3;
        int var2 = 4;
        int var3 = 5;
        int var4 = 6;
        file1 << var1 << ";" << var2 << ";" << var3 << ";" << var4;
    }
    devrait marcher...

    Juste un petit conseil. Si tu comme tu l'as dit au dessus, tu souhaites retravailler, alors le mieux serait d'acheter un bon livre sur le C++. C'est là que tu progresseras le mieux...

    Bonne continuation.

  9. #29
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Citation Envoyé par poukill Voir le message
    Non c'est pas obligatoire en C++, le fichier.close(), tu le fais que si t'as besoin de le fermer à un endroit...

    EDIT :
    ??? comment ca c'est pas obligatoire de fermer un fichier??

  10. #30
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut
    std::istream est une classe, donc possède un destructeur...
    Le fichier est donc automatiquement fermé lorsqu'on sort de la portée du ifstream, c'est-à-dire dans le cas présent à la fin du programme.

    Je dis une connerie ?

  11. #31
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 401
    Par défaut
    Si, c'est obligatoire, mais fait automatiquement dans le destructeur du stream...

    Edit pour Poukill: Je n'avais pas vu que tu m'avais grillé...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  12. #32
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    Si, c'est obligatoire, mais fait automatiquement dans le destructeur du stream...
    C'est ce que j'ai dit plus haut...

  13. #33
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Citation Envoyé par poukill Voir le message
    std::istream est une classe, donc possède un destructeur...
    Le fichier est donc automatiquement fermé lorsqu'on sort de la portée du ifstream, c'est-à-dire dans le cas présent à la fin du programme.

    Je dis une connerie ?

    ah oui tiens.
    J'y avait pas pensé
    désolé

  14. #34
    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
    Mais, d'un autre coté, avec le code fournis, on peut se demader si l'ouverture en écriture et l'ouverture en lecture sont ou non dans la même portée...

    Si, de fait, il essaye d'ouvrir le fichier en écriture, d'y mettre quelque chose et, tout de suite après d'ouvrir le fichier en lecture (dans la même portée et sans avoir fermé le fichier), les problèmes apparaîtront sans doute lors de la tentative d'ouverture en lecture
    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

  15. #35
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    perso je prefere fermer mon fichier. c'est plus claire a relire

  16. #36
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut
    En général, on ne lit et n'écrit pas dans une même fonction... Le close est donc inutile. (j'ai bien dit en général )
    (Dans le cas multithread, on met un mutex, donc c'est encore différent)

  17. #37
    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
    @ toutounesan=>

    La première chose à faire, c'est de vérifier où doivent être placés les fichiers que tu veux utiliser.

    *Logiquement* si tu crées un fichier au départ de l'application (sans fournir d'autres info que le nom du fichier), tu devrais pouvoir le retrouver dans l'arborescence de ton projet.

    Sinon, il faut veiller à fournir le chemin absolu, ou relatif à l'application qui permettra de retrouver ce fichier.

    Si tu veux prendre toutes les précautions, tu peux vérifier l'ouverture d'un fichier, aussi bien en écriture qu'en lecture, car, sous linux, par exemple, la gestion des droits permet d'empêcher la création de nouveaux fichiers dans certains dossiers.

    Ensuite, je rejoins pleinement l'avis de poukill lorsqu'il te conseille de reprendre "les bases" depuis le début si ton but est de travailler dans le secteur.

    Fais peut être un tour du coté des cours et tutoriels du site, voire, base toi sur les critiques fournies par les membres concernant certains livres afin de choisir celui qui sera le mieux adapté à ton niveau

    Travaille à ton aise, sans précipitation, et sans vouloir mettre la charrue avant les boeufs.

    Apprend à marcher avant de vouloir courir, et, si tu éprouve un problème particulier face à une situation particulière, n'hésite pas à venir nous demander un complément d'explication ou de l'aide
    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

  18. #38
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    559
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 559
    Par défaut
    Merci des conseils.

    Il est vrai que je me précipite.

Discussions similaires

  1. java : lire fichier texte application web (war)
    Par drob38 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 08/07/2009, 00h31
  2. [VB.NET 2.0] lire fichier text
    Par Emcy dans le forum Windows Forms
    Réponses: 4
    Dernier message: 20/12/2006, 09h45
  3. Lire fichier texte
    Par kinouseb dans le forum VC++ .NET
    Réponses: 2
    Dernier message: 08/11/2006, 18h01
  4. Lire fichier texte en respectant la police, la forme
    Par loupin dans le forum Langage
    Réponses: 2
    Dernier message: 10/07/2006, 23h49
  5. Lire fichier Texte
    Par rprom1 dans le forum Entrée/Sortie
    Réponses: 12
    Dernier message: 15/03/2006, 17h36

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