Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/159.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 为什么我的fwrite命令只运行一次?_C++_File_Fwrite - Fatal编程技术网

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

C++ 为什么我的fwrite命令只运行一次?,c++,file,fwrite,C++,File,Fwrite,我正在使用fwrite存储名为rawData的QVector的值 这是我的密码: unsigend short* ptr = rawdata(); FILE * pFile; pFile = fopen("arrayValues.txt", "a"); fwrite(ptr, sizeof(unsigned short), sizeof(rawData), pFile); fclose(pFile); 上面的程序“工作”意味着我能够写入文件,当我用十六进制编辑器打开文件时,我可以看到

我正在使用
fwrite
存储名为
rawData
的QVector的值

这是我的密码:

unsigend short* ptr = rawdata();    

FILE * pFile;
pFile = fopen("arrayValues.txt", "a");
fwrite(ptr, sizeof(unsigned short), sizeof(rawData), pFile);
fclose(pFile);
上面的程序“工作”意味着我能够写入文件,当我用十六进制编辑器打开文件时,我可以看到里面的东西。但是,它只写入一帧的值,然后停止,即使程序一遍又一遍地调用该方法


更奇怪的是,如果我关闭程序并再次运行它,它将打开文件(文件中已经有上次运行的值),并在末尾附加一组新值。因此我知道我正在以追加模式打开文件。

因为您提到了
rawData
是一个QVector,请替换:

sizeof(rawData)

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


说明:
sizeof
运算符返回作为参数的类型的大小(以字节为单位)。在您的例子中,它返回类型
QVector
使用的字节数,因为您没有给它任何指针作为参数,而是给它类型
QVector
的对象。成员函数
size()
是获取类
QVector
的元素数的好方法

您能否演示如何多次调用代码段?问题可能出现在未显示的代码中。什么是
rawdata()
rawdata
?@DietmarKühl它位于名为
run()的方法中
这是很多代码,所以我没有把它包括进去。@Olivier不,这就是问题所在,因为当我使用
fstream
并在向量中迭代时,我能够毫无问题地写出所有值。这很有效!你能解释一下我以前的错误吗?我已经在答案中加了解释。
rawData.size()