Bonjour à tous.
J'essaie de créer une fonction qui récupère des coordonnées dans un fichier texte. Le fichier texte étant conçu de cette manière :
Je dois donc récupérer tout les nombres, bien entendu en ignorant la première et dernière ligne. Chaque ligne représentant donc les coordonnées des deux points d'un segments. J'ai donc rédigé la procédure suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 #{ N1 -nombre- -nombre- -nombre- -nombre- N2 -nombre- -nombre- -nombre- -nombre- [...] Nx -nombre- -nombre- -nombre- -nombre- #}
L'ennui, c'est que j'arrête pas d'avoir des segmentation faults, et j'arrive vraiment pas à résoudre ce problème. Je dois avoir raté quelque chose avec la lecture du fichier ou du istringstream. Une idée ?
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 void setDataTable(float points[MAX][2] , string file) { ifstream f(file.c_str(), ios::in); string line, str; vector<string> result; int j=0; if (f) { while (! f.eof()) { getline(f,line); istringstream iss(line); while (getline(iss, str, ' ')) { result.push_back(str); } for(int i=0; i < result.size(); i++) { if (i == 1) points[j][0] = atof(result[i].c_str()); if (i == 2) points[j][1] = atof(result[i].c_str()); if (i == 3) points[j+1][0] = atof(result[i].c_str()); if (i == 4) { points[j+1][1] = atof(result[i].c_str()); j = j+2; } } } } else { cerr << "setDataTable : can't read " << file << "." << endl; } cout << "Fin fonction setDataTable" << endl; f.close(); }
Merci d'avance pour votre réponse.
Partager