我是从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));
但请记住,一般来说,以这种方式存储任何数据并不是一个好主意.