c – QFile.write(myStruct) – 怎么样?

我是从Qt开始的,现在已经有很长一段时间了.我敢肯定这只是我在C中看不到的东西.无论如何,请看下面的简单代码并指出我做错了什么:

typedef struct FILEHEADER {
    char udfSignature[8];
    char fileName[64];
    long fileVersion;
    UNIXTIME fileCreation;
    UNIXTIME lastRebuild;
    FILEPOINTER descriptor;
} fileheader;

QFile f("nanga.dat");
    if(f.open(QIODevice::ReadWrite));

f.write(fileheader);

Qt 5.2.0告诉我以下错误消息:

C:\sw\udb\udb\main.h:113: error: no matching function for call to
'QFile::write(FILEHEADER&)'
         file.write(header);
                          ^

关于如何将此结构写入QFile的任何建议?

谢谢

解决方法:

QFile有write方法,它接受任意字节数组.你可以尝试这样的事情:

fileheader fh = { ...... };
QFile f("nanga.dat");
if(f.open(QIODevice::ReadWrite))
    f.write(reinterpret_cast<char*>(&fh), sizeof(fh));

但请记住,一般来说,以这种方式存储任何数据并不是一个好主意.

上一篇:VS2015如何使用qss


下一篇:c – 打开QFile以进行追加