我使用fwrite
存储名为rawData
的QVector的值。
这是我的代码:
unsigend short* ptr = rawdata();
FILE * pFile;
pFile = fopen("arrayValues.txt", "a");
fwrite(ptr, sizeof(unsigned short), sizeof(rawData), pFile);
fclose(pFile);
上面的程序"工作"这意味着我能够写入一个文件,当我用十六进制编辑器打开文件时,我可以看到那里的东西。但是,它只写一帧的值然后停止,即使程序一遍又一遍地调用该方法。
更奇怪的是,如果我关闭程序并再次运行它,它将打开文件(已经有最后一次运行的值)并在最后添加一组新值。所以我知道我在附加模式下打开文件。
答案 0 :(得分:7)
由于您提到rawData
是QVector,请替换:
sizeof(rawData)
与
rawData.size()
如果这不起作用,我认为问题不在于您向我们展示的代码。请提供更多信息/代码。
说明:sizeof
运算符返回您提供的类型的大小(以字节为单位)作为其参数。在您的情况下,它返回类型QVector
使用的字节数,因为您没有将任何指针作为参数,而是类型为QVector
的对象。成员函数size()
是获取类QVector
的元素数量的好方法。