gpt4 book ai didi

c - C中数据文件的二维数组

转载 作者:太空宇宙 更新时间:2023-11-04 08:46:14 25 4
gpt4 key购买 nike

这是我的代码。我正在尝试从数据文件中读取二维数组,但我得到了垃圾。怎么了?

void read_array(int masyvas[][m])
{
FILE *fp;
if ( (fp=fopen("test.dat","wb+"))==NULL)
{
printf ("error \n");
system("pause");
exit (1);
}
printf("reading file\n");
int x, y;
for( x = 0; x < n; ++x )
{
for( y = 0; y < m; ++y )
{
fread(&masyvas[x][y], sizeof(int),1,fp );
printf( "%d ", masyvas[x][y] );
}
printf( "\n" );
}
}

最佳答案

您没有检查 fread() 调用;那总是一个错误。

您剩下的麻烦是 “wb+” 模式确实截断为零长度或创建二进制文件进行更新,这可能不是您想要的。 p>

"wb+" 替换为 "rb+"(打开二进制文件进行更新(读取和写入)),这不会截断文件.

既然你在函数中打开了文件,你也应该在函数中fclose()它。并且由于除了读取文件之外您从未对该文件执行任何操作,因此您实际上也不需要更新模式。

关于c - C中数据文件的二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21584529/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com