Bonjour à tous,

J'ai un fichier texte de plusieurs millions de lignes
constitué de 3 champs (nom abscisse ordonnée) représentant des points.

Exemple d'une ligne donnée : AA35 0.071426548 0.3711554775

J'essaye de faire 2 boucles imbriquées (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 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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#include <iostream>
#include <vector>
#include <fstream>
#include <string>
 
struct Data1 
{
    std::string name1_{};
    double x_{};
};
 
struct Data2 
{
    std::string name2_{};
    double y_{};
};
 
int main() 
{
     int i;
     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.x_) 
    {
           datas1.push_back(data1);
    }
 
    while(file >> data2.y_) 
    {
           datas2.push_back(data2);
    }
 
for (auto const& data1: datas1)
{
for (auto const& data2: datas2)
{
        std::cout << data1.x1_  << data1.y1_  << std::endl; 
        std::cout << data2.x2_  << data2.y2_  << std::endl; 
 
       x3 = data1.x1_ + data2.x2_;   
       y3 = data1.y1_ + data2.y2_;
 
        printf("x3 = %f y3 = %f \n",x3,y3);    	// Pas de résultat ...
}
}
 
}