martedì 5 febbraio 2013

Scrivere e leggere file binario in Qt

Ed adesso in confronto il metodo Qt ed il metodo standard C++ per leggere un file binario di interi

Qt
-----------------------------------------------------------

#include <QFile>
#include <QDebug>



   QFile f("/home/luca/luca.dat");
    f.open(QIODevice::WriteOnly | QIODevice::Append);
    QDataStream out(&f);
    out<<quint16(270);
    f.close();

    QFile g("/home/luca/luca.dat");
    g.open(QIODevice::ReadOnly);
    QDataStream in(&g);
    qint16 letto;
    in >> letto;
    qDebug() << letto;


-----------------------------------------------------------

C++
-----------------------------------------------------------
#include <iostream>
#include <fstream>
using namespace std;
int main(void){
   float fnum[4{42.22, -42.44, 1.27.8};
   int i;

   ofstream out("numeri.dat", ios::out | ios::binary);
   if(!out){
       return 1;
   }
   out.write((char *&fnum, sizeof(fnum));
   out.close();

   for (i=0; i<4; i++)
      fnum[i0.0;
   ifstream in("numeri.dat", ios::in | ios::binary);
   if(!in) {
      cout << "Cannot open file.";
      return 1;
      ;
   }
   in.read((char *&fnum, sizeof(fnum));
   cout << in.gcount() << " bytes read." << endl;
   for (i=0; i<4; i++)
      cout << fnum[i<< " ";
   in.close();
   cout << endl;
}
----------------------------------------------------------------
  
-----