为什么我的fwrite命令只运行一次?

Nat*_*rov 3 c++ file fwrite

fwrite用来存储一个叫QVector的值rawData.

这是我的代码:

unsigend short* ptr = rawdata();    

FILE * pFile;
pFile = fopen("arrayValues.txt", "a");
fwrite(ptr, sizeof(unsigned short), sizeof(rawData), pFile);
fclose(pFile);
Run Code Online (Sandbox Code Playgroud)

上面的程序"工作"意味着我能够写入文件,当我用十六进制编辑器打开文件时,我可以看到那里的东西.但是,它只写一帧的值然后停止,即使程序一遍又一遍地调用该方法.

更奇怪的是,如果我关闭程序并再次运行它,它将打开文件(已经有最后一次运行的值),并在最后添加一组新的值.所以我知道我在追加模式下打开文件.

App*_*ker 8

既然你提到的rawData是QVector,请替换:

sizeof(rawData)
Run Code Online (Sandbox Code Playgroud)

rawData.size()
Run Code Online (Sandbox Code Playgroud)

如果这不起作用,我认为问题不在于您向我们展示的代码.请提供更多信息/代码.

Explanation:sizeof运算符返回您提供的类型的大小(以字节为单位)作为其参数.在您的情况下,它返回类型使用的字节数,QVector因为您没有将任何指针作为参数,而是类型的对象QVector.成员size()函数是获取类的元素数量的好方法QVector.