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 :

Problème de lecture de fichier


Sujet :

C++

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 89
    Par défaut Problème de lecture de fichier
    Bonjour,

    J'ai un petit problème ... J'avais trouvé une fonction pour lire la première ligne d'un fichier spécifié et la stocker dans une variable, mais elle ne marche pas... malgré le fait d'avoir include le bon header...

    Ce que je voudrais, c'est ouvrir un fichier en lecture, et récupérer la première ligne (jusqu'à un \n) et la stocker dans une variable de type double (puisque cette ligne sera que des nombres décimaux)

    Merci d'avance

    Astrofan.

  2. #2
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    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 395
    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.

  3. #3
    Membre confirmé

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 133
    Par défaut
    pour lire la première ligne d'un fichier, je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
      char* nom="donnees.txt";
      ifstream txt(nom, ios::in);
      if (txt)
      {
        char* buf;
        txt.getline(buf,1024);
      }
      txt.close();
    pour que ça fonctionne il faut inclure <fstream>, je crois.

  4. #4
    Membre émérite
    Avatar de Ange_blond
    Homme Profil pro
    Ingénieur développement en 3D temps réel
    Inscrit en
    Mars 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement en 3D temps réel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2007
    Messages : 902
    Par défaut
    il te faut d'abord lire la 1ere ligne (gets ou fscanf ) et la stocker dans un char* puis la convertir par la suite en float (fonction existe déjà)

  5. #5
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    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 395
    Par défaut
    Ange_blond:
    1. On n'est pas en C ici
    2. Tu OSES suggérer gets()? Hors d'ici, blasphémateur!


    astrofan : Pour lire la première ligne d'un fichier, tu peux utiliser une std::string et la fonction std::getline() (les deux sont déclarées dans <string>)

    Code C++ : 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
    #include <fstream>
    #include <string>
    #include <iostream>
    using namespace std;
     
    void LireFichier(void)
    {
    	char const * nom = "donnees.txt";
    	ifstream txt(nom, ios::in);
    	if(txt)
    	{
    		string line;
    		getline(txt, line);
     
    		//On affiche la ligne, pour voir:
    		cout << "Ligne lue : " << line << endl;
    	}
    	txt.close();
    }
    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.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 89
    Par défaut
    Merci beaucoup pour vos réponses.
    Donc avec vos conseils, si j'ai bien compris , je dois faire un code source comme ça pour afficher la variable que j'ai récupéré:



    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
     
    #include <fstream>
    #include <string>
    #include <iostream>
    using namespace std;
     
     
    int main()
    {
    LireFichier(void);
    cout<<"La variable est "<<line<<".\n";
    system("pause>nul");
    return 0;
    }
     
     
    void LireFichier(void)
    {
        char const * nom = "donnees.txt";
        ifstream txt(nom, ios::in);
        if(txt)
        {
            string line;
            getline(txt, line);
    }
        txt.close();
    }
    C'est bien ça? merci d'avance^^

    Astrofan

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 89
    Par défaut
    et pour lire un fichier téléchargé sur le net via mon programme, je fais:

    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
     
    #include <fstream>
    #include <string>
    #include <iostream>
    using namespace std;
     
     
    int main()
    {
    system("wget http://www.scrola.com/donnees.txt");
    LireFichier(void);
    cout<<"La variable est "<<line<<".\n";
    system("pause>nul");
    return 0;
    }
     
     
    void LireFichier(void)
    {
        char const * nom = "donnees.txt";
        ifstream txt(nom, ios::in);
        if(txt)
        {
            string line;
            getline(txt, line);
    }
        txt.close();
    }
    ?? C'est bien ça?^^

  8. #8
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    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 395
    Par défaut
    Pas exactement : La fonction de lecture doit retourner la ligne lue.
    Code C++ : 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
    #include <fstream>
    #include <string>
    #include <iostream>
    using namespace std;
     
    string LireFichier(void)
    {
        string line;
        char const * nom = "donnees.txt";
        ifstream txt(nom, ios::in);
        if(txt)
        {
            getline(txt, line);
        }
        txt.close();
        return line;
    }
     
    int main()
    {
        string line = LireFichier(void);
        cout<<"La variable est "<<line<<".\n";
        system("pause>nul");
        return 0;
    }
    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.

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 89
    Par défaut
    ahhhh cool merci^^ Merci beaucoup à tous, et surtout à Médinoc^^ et pour le téléchargement? c'est bon? un peut suffir?

    Wget est un programme auxiliaire qui sera liée* avec le programme^^

  10. #10
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    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 395
    Par défaut
    Je ne connais pas assez wget pour être sûr, mais c'est possible que oui.
    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.

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 89
    Par défaut
    ok merci beaucoup^^ Je ne savais pas que avec on pouvait éxécuter toutes les commandes dos... c'est cool^^ Car en batch, j'arrive à bien me débrouiller^^ enfin la base quoi^^

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

Discussions similaires

  1. [POI] Problème de lecture des fichiers Word
    Par Dari dans le forum Documents
    Réponses: 9
    Dernier message: 05/07/2007, 14h08
  2. Problème de lecture sur fichier ini.
    Par braoru dans le forum Delphi
    Réponses: 2
    Dernier message: 28/07/2006, 15h34
  3. [DOM4J] Problème de lecture de fichier xml avec dom4j
    Par santana2006 dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 05/04/2006, 16h52
  4. Problème de lecture de fichier Excel
    Par cocaetjusdorange dans le forum Langage
    Réponses: 4
    Dernier message: 08/02/2006, 11h08
  5. Problème de lecture de fichier Oracle 9.2
    Par fortlow dans le forum Oracle
    Réponses: 4
    Dernier message: 14/11/2005, 16h48

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