2013-12-16 111 views
1
void write(QString filename) { 
    QChar ch('b'); 
    QFile mfile(filename); 
    if (!mfile.open(QFile::WriteOnly) { 
    qDebug() << "Could not open file for writing"; 
    return; 
    } 
    QDataStream out(&mfile); 
    out.setVersion(QDataStream::Qt_4_8); 
    out << ch; 
    mfile.close(); 
} 

打開二進制文件,並寫入 'B'(二進制)QT二進制文件讀寫

void read(QString filename) { 
    QFile mfile(filename); 
    if (!mfile.open(QFile::ReadOnly)) { 
    qDebug() << "Could not open file for reading"; 
    return; 
    } 
    QDataStream in(&mfile); 
    in.setVersion(QDataStream::Qt_4_8); 
    QChar mT; 
    in >> mT; 
    qDebug() << mT; 
    mfile.close(); 
} 

讀取而不能MT ='b'.if CH和MT變量INT總是MT = 4爲什麼?如何編寫ch(二進制文件)並從二進制文件中讀取

+0

您需要打開()該文件進行寫入/讀取。 –

+0

對不起,我在編寫代碼。我打開並沒有改變問題仍然 – seniorc

+0

什麼是由in.status()返回的值和out.status() – UmNyobe

回答

0

4 number是您的數據的長度。 QDataStream存儲數據之前的長度,表示需要讀取多少個字節才能獲取寫入的數據。你的數據已經寫完了。