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 d'un fichier texte


Sujet :

C

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 14
    Points : 7
    Points
    7
    Par défaut Problème de lecture d'un fichier texte
    Bonjour à tous,

    J'essaye de lire un fichier texte comprenant 3 champs (nom abscisse ordonnée).

    Voiçi l'exemple d'une ligne donnée : AA35 0.07142 0.37115

    Pas de problème pour lire les 3 champs nom et les 2 chiffres déclarés en double.
    Mais je n'arrive pas à visualiser via un printf les différentes données (nom et valeurs).
    Comment visaliser le nom d'une ligne donnée et les valeurs des doubles d'une autre ligne ?

    Merci pour votre aide.

    Mon code :

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    #include <iostream>
    #include <vector>
    #include <fstream>
    #include <string>
     
    struct Data 
    {
        std::string name_{};
        double x_{};
        double y_{};
    };
     
    int main() 
    {
         int i;
     
        std::ifstream file("points.txt");
        if(!file) 
        {
            std::cerr << "file not found" << std::endl;
            return 1;
        }
     
        std::vector<Data> datas;
        Data data;
        while(file >> data.name_ >> data.x_ >> data.y_) 
        {
               datas.push_back(data);
        }
     
        //ensuite accès avec datas[i]
     
     
    for (i=1;i< 10;i++)
    {
        printf("%f \n", datas[i]);	// Probleme pour visualiser les donnees
    }
     
     
    }

  2. #2
    Expert éminent
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Décembre 2015
    Messages
    1 568
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2015
    Messages : 1 568
    Points : 7 658
    Points
    7 658
    Par défaut
    Bonjour,

    printf() c'est plutôt du C, en C++ on utilise std::cout
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for ( std::size_t i = 0 ; i < datas.size() ; ++i ) {
        std::cout << datas[i].name_ << " " << data[i].x_ << " " << data[i].y_ << "\n";
    }

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    Bonjour,
    Merci pour cette précision qui me permet de visualiser les datas.

    J'ai appliquée votre code dans une double boucle (for) afin de faire des opérations sur tout les couples de points.
    Une boucle for permet bien de lister tout les points et leurs coordonnées mais une double boucle ne permet pas de faire des opérations sur ces points.
    Merci d'avance pour votre aide.

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    #include <iostream>
    #include <vector>
    #include <fstream>
    #include <string>
     
    struct Data1 
    {
        std::string name1_{};
        double x1_{};
        double y1_{};
    };
     
    struct Data2 
    {
        std::string name2_{};
        double x2_{};
        double y2_{};
    };
     
     
    int main() 
    {
         int i;
         int j;
         double x3;
         double y3;
     
        std::ifstream file("XY.txt");
        if(!file) 
        {
              std::cerr << "file not found" << std::endl;
              return 1;
        }
     
        std::vector<Data1> datas1;
        Data1 data1;
     
        std::vector<Data2> datas2;
        Data2 data2;
     
     
        while(file >> data1.name1_ >> data1.x1_ >> data1.y1_) 
        {
               datas1.push_back(data1);
        }
     
        while(file >> data2.name2_ >> data2.x2_ >> data2.y2_) 
        {
               datas2.push_back(data2);
        }
     
        for ( std::size_t i = 0 ; i < datas1.size() ; ++i ) 
       {
        for ( std::size_t j = 0 ; j < datas2.size() ; ++j ) 
       {
                   std::cout << datas1[i].name1_ << " " << datas1[i].x1_ << " " << datas1[i].y1_ << "\n";
                   std::cout << datas2[j].name2_ << " " << datas2[j].x2_ << " " << datas2[j].y2_ << "\n";
     
                  x3 = datas1[i].x1_  +  datas2[j].x2_;
                  y3 = datas1[i].y1_  +  datas2[j].y2_;
     
                  printf("x3 = %f y3 = %f \n",x3,y3);           // rien en sortie ...
       }    
       }
     
    }

Discussions similaires

  1. Problème de lecture dans un fichier texte.
    Par Mike888 dans le forum C
    Réponses: 3
    Dernier message: 24/05/2007, 11h45
  2. [WIN32]problème de Lecture d'un fichier texte
    Par jesus144 dans le forum Windows
    Réponses: 14
    Dernier message: 23/02/2007, 11h40
  3. problème de lecture depuis un fichier texte
    Par [Hugo] dans le forum C++
    Réponses: 12
    Dernier message: 27/10/2006, 16h46
  4. [VBnet] Problème de lecture d'un fichier texte.
    Par dibeloni dans le forum Windows Forms
    Réponses: 3
    Dernier message: 31/03/2006, 19h12
  5. Réponses: 2
    Dernier message: 28/12/2005, 15h00

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