zulfikar-26 | 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 :
- int main()
- {
- std::ofstream fichier;
- fichier.open("testdata.dat", std::ofstream::binary);
- if(fichier) // si l'ouverture a réussi
- {
- std::vector<std::pair<double, double> > xy_pts_A(4);
- fichier.write((const char*)&xy_pts_A.front(),1*2*sizeof(std::pair<double, double> ));
- xy_pts_A[1]=(std::make_pair(pow(2,10), 8));
- fichier.seekp(4*sizeof(std::pair<double, double> ));
- fichier.write((const char*)&xy_pts_A[1],sizeof(std::pair<double, double> ));
- //cout << 2*sizeof(std::pair<double, double> ) << endl;
- fichier.close(); // on ferme le fichier
- }
- else // sinon
- cerr << "Impossible d'ouvrir le fichier !" << endl;
- using namespace std;
- std::vector<std::pair<double, double> > tab;
- std::string const nomFichier("testdata.dat" );
- std::ifstream fichier1(nomFichier.c_str());
- std::pair<double, double> d;
- while (fichier1 >> d.first >> d.second)
- {
- tab.push_back(d);
- }
- for (int i(0); i < tab.size() ; ++i)
- {
- cout << " Ligne " << i << " : { x = " << tab[i].first << " , y = " << tab[i].second << " }\n";
- }
- return 0;
- }
|
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. |