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 :

Lecture dans un fichier, petits soucis


Sujet :

C++

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2012
    Messages : 51
    Points : 51
    Points
    51
    Par défaut Lecture dans un fichier, petits soucis
    Bonjour à tous,
    d'abord je m'excuse pour la certaine trivialité d ema question mais je n'ai jamais touché au C++ avant ce matin.
    Je veux lire la première ligne d'un fichier, je procède ainsi:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    std::string filename= "casc2.txt";// mon fichier
     
        std::fstream file(filename.c_str(),std::ios::in);
        std::string ligne;
     
        //First line is number of nodes
        std::getline(file,ligne);
        std::cout<<"la ligne est ",ligne;
    Cependant je n'ai pas l'affichage de la première ligne du fichier, seulement "la ligne est ".
    Merci pour votre éclairage

  2. #2
    Membre chevronné Avatar de Astraya
    Homme Profil pro
    Consommateur de café
    Inscrit en
    Mai 2007
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Consommateur de café
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 043
    Points : 2 234
    Points
    2 234
    Par défaut
    Bonjour,

    Tu trouveras ton erreur en répondant a la question : Pourquoi mets-tu une virgule dans ta ligne suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    std::cout<<"la ligne est ",ligne;
    Lis cette FAQ du site et tu auras ta réponse et en plus tu apprendras à bien l'utiliser!

    http://cpp.developpez.com/faq/cpp/?p...-de-la-console
    Homer J. Simpson


  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2012
    Messages : 51
    Points : 51
    Points
    51
    Par défaut
    Bonjour et merci de la réponse,
    j'ai essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    std::cout<<"la ligne est " << ligne;
    Ça ne donne rien non plus. pourrais-je connaître mon erreur?

    Je précise que mon objectif n'est pas dans un premier temps de parfaitement comprendre les fonctionnalités du C++, seulement d'être capable de pondre de façon mimétique un truc qui marche plus ou moins. Ce n'est pas par fainéantise mais j'ai des priorités cependant.

  4. #4
    Membre chevronné Avatar de Astraya
    Homme Profil pro
    Consommateur de café
    Inscrit en
    Mai 2007
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Consommateur de café
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 043
    Points : 2 234
    Points
    2 234
    Par défaut
    As-tu testé que ton fichier était bien ouvert?
    As-tu déboguer ton programme avec le débogeur?
    Est-ce que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    printf("%s",ligne.c_str());
    Affiche quelque chose?
    Homer J. Simpson


  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2012
    Messages : 51
    Points : 51
    Points
    51
    Par défaut
    Le printf n'affiche rien du tout non plus.
    Du coup j'ai testé ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    if ( ! file ) // check if the file loaded fine.
        {
            std::cout<<"probleme";
        }
    Et ça m'affiche bien "probleme".

    Du coup comme tu le soupçonnais mon fichier n'est pas bien ouvert. La question est pourquoi?

    Mon code donne donc ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     std::string filename= "casc2.txt";
        std::fstream file(filename.c_str(),std::ios::in);
        std::string ligne;
        if ( ! file ) // check if the file loaded fine.
        {
            std::cout<<"probleme";
        }
        std::getline(file,ligne);
        std::cout<< ligne;
    Ps: merci pour le temps que tu prends à répondre

  6. #6
    Membre chevronné Avatar de Astraya
    Homme Profil pro
    Consommateur de café
    Inscrit en
    Mai 2007
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Consommateur de café
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 043
    Points : 2 234
    Points
    2 234
    Par défaut
    Tu ne dois pas avoir ton fichier dans le bon dossier. Où est ton fichier case2.txt? Avec ton exécutable? dans la racine du projet?
    Si tu lances dans Visual Studio (via le menu débogueur), il va chercher case2.txt dans la racine du projet par défaut, c'est la ou tu as ton .vcxproj et .sln. Si tu lances ton exe en double cliquant dessus, il va chercher par defaut dans le même répertoire que ton exécutable.
    Si tu veux que Visual Studio cherche par défaut dans le fichier ou ton exécutable est généré tu dois le lui dire. Pour ce faire vas dans les propriété du projet (clique droit sur le projet dans Visual Studio->Propriétés) puis Propriétés de configuration->Débogage->Répertoire de travail, tu changes $(ProjectDir) par $(OutDir). Penses à faire ça pour la configuration debug et release.
    Homer J. Simpson


  7. #7
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2012
    Messages : 51
    Points : 51
    Points
    51
    Par défaut
    Effectivement, le problème était la définition du répertoire de travail (j'ai changé ça sous QT Creator, je bosse dessus plutot que sur Visual Studio) .

    Merci beaucoup!

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

Discussions similaires

  1. macros word et lecture dans un fichier excel
    Par antrax2013 dans le forum Windows
    Réponses: 2
    Dernier message: 01/10/2005, 19h05
  2. Réponses: 20
    Dernier message: 25/09/2005, 15h07
  3. Lecture dans un fichier
    Par unknown4 dans le forum Entrée/Sortie
    Réponses: 5
    Dernier message: 14/08/2005, 17h56
  4. [Débutant] Lecture dans un fichier texte
    Par babemagus dans le forum Entrée/Sortie
    Réponses: 10
    Dernier message: 07/07/2005, 12h17
  5. Réponses: 12
    Dernier message: 14/06/2004, 13h06

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