日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

QT学习:读写二进制文件

發布時間:2024/9/30 c/c++ 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 QT学习:读写二进制文件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

使用QDataStream讀寫二進制文件。
具體用法見如下代碼:
(1)頭文件“mainwindow.h”的具體代碼如下:

#include <QMainWindow> class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(QWidget *parent = 0); ~MainWindow(); void fileFun(); }

(2)源文件“mainwindow.cpp”的具體代碼如下:

#include "mainwindow.h" #include <QtDebug> #include <QFile> #include <QDataStream> #include <QDate> MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { fileFun(); }

函數fileFun()完成主要功能,其具體代碼如下:

void MainWindow::fileFun() { /*將二進制數據寫到數據流 */ //每一個條目都以定義的二進制格式寫入文 件。Qt中的很多類型,包括QBrush、QColor、QDateTime、QFont、QPixmap、QString、QVariant等都可 以寫入數據流。QDataStream類寫入了name(QString)、birthday(QDate)和age(qint32)這三個數據。注意, 在讀取時也要使用相同的類型讀出。 QFile file("binary.dat"); file.open(QIODevice::WriteOnly | QIODevice::Truncate); QDataStream out(&file); //將數據序列化 out << QString(tr("周何駿:")); //字符串序列化 out << QDate::fromString("1996/09/25", "yyyy/MM/dd"); out << (qint32)23; //整數序列化 file.close(); /*從文件中讀取數據 */ //QDataStream類可以讀取任意的以 QIODevice為基類的類生成對象產生的數據,如QTcpSocket、QUdpSocket、QBuffer、QFile、QProcess等 類的數據。可以使用QDataStream在QAbstractSocket一端寫數據,在另一端使用QDataStream讀取數據, 這樣就免去了煩瑣的高低字節轉換工作 file.setFileName("binary.dat"); if(!file.open(QIODevice::ReadOnly)) { qDebug()<< "error!"; return; } QDataStream in(&file); //從文件中讀出數據 QString name; QDate birthday; qint32 age; in >> name >> birthday >> age; //獲取字符串和整數 qDebug() << name << birthday << age; file.close(); }

(3)運行結果如下圖所示:

總結

以上是生活随笔為你收集整理的QT学习:读写二进制文件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。