Lecture de pair<double,double> d'un fichier

Lecture de pair<double,double> d'un fichier - C++ - Programmation

Marsh Posté le 15-02-2018 à 18:47:01    

Bonjour,
 
je vien vers vous après plusieurs tentative de lecture de fichier ou je dois lire un vector de pair de double. Voici mon problème j'écris un vector ds un fichier et j'essaie de retrouver les nombre que j'ai écris pour m’entraîner à la lecture d'un fichier un peu plus complexe pour un projet. Voici le code que j'ai fait pour l'instant:
 

Code :
  1. int main()
  2. {
  3.     std::ofstream fichier;
  4.  fichier.open("testdata.dat", std::ofstream::binary);
  5.         if(fichier)  // si l'ouverture a réussi
  6.         {
  7.  std::vector<std::pair<double, double> > xy_pts_A(4);
  8.  fichier.write((const char*)&xy_pts_A.front(),1*2*sizeof(std::pair<double, double> ));
  9.  xy_pts_A[1]=(std::make_pair(pow(2,10), 8));
  10.  fichier.seekp(4*sizeof(std::pair<double, double> ));
  11.  fichier.write((const char*)&xy_pts_A[1],sizeof(std::pair<double, double> ));
  12.  //cout <<  2*sizeof(std::pair<double, double> ) << endl;
  13.          fichier.close();  // on ferme le fichier
  14.         }
  15.         else  // sinon
  16.                 cerr << "Impossible d'ouvrir le fichier !" << endl;
  17.     using namespace std;
  18.     std::vector<std::pair<double, double> > tab;
  19.     std::string const nomFichier("testdata.dat" );
  20.     std::ifstream fichier1(nomFichier.c_str());
  21.     std::pair<double, double> d;
  22.     while (fichier1 >> d.first >> d.second)
  23.     {
  24.       tab.push_back(d);
  25.     }
  26.     for (int i(0); i < tab.size() ; ++i)
  27.     {
  28.       cout << " Ligne " << i << " : { x = " << tab[i].first << " , y = " << tab[i].second << " }\n";
  29.     }
  30.     return 0;
  31. }


 
j'essaie de récupérer les 8 zéros que j'ai écris ainsi que le 1024 et le 8. Merci d'avance pour votre aide.
PS : je ne peux pas changer la manière dont j'écris le fichier car c'est écrit de cette manière dans le fichier que je dois traiter pour mon projet.

Reply

Marsh Posté le 15-02-2018 à 18:47:01   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed