onjour a tous ,

je travaille sur un projet sous QT ; je dois lire les contenues d'un fichier qui seront les données d'une autre fonction, j'ai la fonction qui s'occupe de lire le contenue de fichier lorsque je le teste seul il fonctionne bien , voila le 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
#include <iostream>
#include <string>
#include <sstream>
#include <vector>
#include <fstream>
*
using namespace std;
*
struct point
{
double x;
double y;
double z;
};
*
vector<point> readingData(string inputFileName)
{
 vector<point> inputData;
string line, token;
point newPoint;
ifstream file;
file.open(inputFileName.c_str(), ifstream::in);
if (file.is_open())
{
while (getline(file, line))
{
istringstream ss(line);
getline(ss, token, ',');
newPoint.x = stod(token);
getline(ss, token, ',');
newPoint.y = stod(token);
getline(ss, token, ',');
newPoint.z = stod(token);
inputData->push_back(newPoint);
}
return inputData;
}
else
cout << "Unable to open file";
file.close();
}
int main()
{
vector<point> inputData;
 
readingData("test.txt");
 
for (int i = 0; i < inputData.size(); i++)
{
cout << inputData.at(i).x << "* " << inputData.at(i).y << "* " << inputData.at(i).z << endl;
}
system("pause");
 
return 0;
 
}
mon projet c'est une interface graphique , donc je dois ajouter ce code au sein de programme de la conception de l'interface ; je le fais comme ceci :

fichier.h :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
public :
   vector<point> readingData(string inputFileName, vector<point>* inputData);

j'ai recopie la fonctionne ds le fichier .cpp dehors la classe MaFenetre :

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
vector<point> readingData(string inputFileName) {
       vector<point> inputData ; 
      string line, token;
      point newPoint;
      ifstream file;
      file.open(inputFileName.c_str(), ifstream::in);
      if (file.is_open())
      {
          while (getline(file, line))
          {
              istringstream ss(line);
              getline(ss, token, ',');
              newPoint.x = stod(token);
              //  getline(ss, token, ',');
              newPoint.y = stod(token);
              // getline(ss, token, ',');
              newPoint.z = stod(token);
              inputData->push_back(newPoint);
          }
          return inputData ;
 
      }
      else
          cout << "Unable to open file";
      file.close();
  }
et a l'interieur de la classe MaFenetre je fais appelle a la fonction pour recopier le fichier dans une autre fonction :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
QScatter3DSeries *series = new QScatter3DSeries(graph);
   vector<point> inputData = MaFenetre::readingData("text.txt");
   QScatterDataArray data;
for (int i=0; i<inputData.size();i++)
{data.push_back(QScatterDataItem(QVector3D(inputData[0],inputData[1],inputData[2])));
 
}
 
 series->dataProxy()->addItems(data);
  graph->addSeries(series);
et lorsque je compile j'ai le message d'erreur suivant :

Nom : 16.PNG
Affichages : 145
Taille : 12,9 Ko