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++ 从二进制文件读取结构_C++_File - Fatal编程技术网

C++ 从二进制文件读取结构

C++ 从二进制文件读取结构,c++,file,C++,File,我在从文件加载数据时遇到问题。我放了一个箱子 在while循环的第一次迭代中,此文件将关闭。一旦关闭,文件将不再有效。但接下来要发生的事情是: while(!feof(arquivo)){ 。。。它将再次尝试检查文件的状态,以检查循环是否会发生另一次迭代。但是这个文件不再有效;因此,这是未定义的行为 您的错误是您的代码在关闭文件后继续使用该文件。一旦你打电话给fclose,游戏就结束了。您不能触摸文件对象,也不能以任何方式引用它。它不见了。它不复存在了。不再是了。它加入了唱诗班。这是一个ex-

我在从文件加载数据时遇到问题。我放了一个箱子 在
while
循环的第一次迭代中,此
文件将关闭。一旦关闭,
文件
将不再有效。但接下来要发生的事情是:

while(!feof(arquivo)){
。。。它将再次尝试检查
文件
的状态,以检查循环是否会发生另一次迭代。但是这个
文件
不再有效;因此,这是未定义的行为


您的错误是您的代码在关闭
文件后继续使用该文件。一旦你打电话给fclose,游戏就结束了。您不能触摸
文件
对象,也不能以任何方式引用它。它不见了。它不复存在了。不再是了。它加入了唱诗班。这是一个ex-
文件

它可能有助于将代码行放在崩溃的地方。实际上它不需要循环。写一个由20个元素组成的数组,读一个由20个元素组成的数组。它可能会崩溃,因为第二个循环试图读取超过文件结尾的内容。它不断重复“已进入while循环”,直到崩溃。它是如何崩溃的?欢迎使用StackOverflow。请回顾在互联网上给出问题的好例子的要素,例如:或。您的问题是否需要三个结构定义,或者您能否用一个结构定义同样好地演示您的问题部分?一个结构是否需要三个字段,或者一个结构是否也可以显示您的问题?您还需要提供问题的所有部分——如果它依赖于一个文件,您也需要它。注意“编辑”按钮以改进问题。注意:1-
fclose(…)
while
循环终止之前不应调用。2-尝试将
“rb”
传递到
fopen(…)
而不是
“rb+”
。这可能是安全的,但是
+
会额外打开文件进行写入。我改变了这一点,并在原始帖子中添加了更多内容
fclose(arquivo);
while(!feof(arquivo)){