Come interpretare QDataStream



  • Ho il seguente programma che mi serve per provare QDataStream e quando cerco di memorizzare la stringa sul file riesco, ma quando con lo stesso cerco di estrapolarla per visualizzarla, la stringa mi risulta vuota. C'è qualcosa che sbaglio?

    #include <QCoreApplication>
    #include <QFile>
    #include <QString>
    #include <QDebug>
    #include <QDataStream>
    
    
    
    int main(int argc, char *argv[])
    {
        QCoreApplication a(argc, argv);
    
        QFile archivio("../Desktop/TopoGigio.txt");
        archivio.open(QIODevice::ReadWrite);
        QDataStream io(&archivio);
    
        QString scrittura = "io sono qui";
        io << scrittura;
        QString lettura;
        io >> lettura;
        qDebug() << lettura;
        archivio.close();
    
        return a.exec();
    }
    


  • e' molto meno complicato di quello che pensi.
    io << scrittura; scrive la stringa e poi punta il file alla fine della scritta cosi' se vuoi scrivere ancora lo aggiunge alla fine. Tu, invece, chiami io >> lettura; e siccome dopo "io sono qui" non c'e' nulla ti ritorna una stringa vuota.
    Devi semplicemente tornare all'inizio del file prima di leggerlo.
    Aggiungi archivio.seek(0); prima di provare a leggerlo.


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.