gpt4 book ai didi

c - 将二维数组写入C中的文件

转载 作者:太空狗 更新时间:2023-10-29 17:20:57 24 4
gpt4 key购买 nike

我曾经使用下面的代码将一维数组写入文件:

FILE *fp;
float floatValue[5] = { 1.1F, 2.2F, 3.3F, 4.4F, 5.5F };
int i;

if((fp=fopen("test", "wb"))==NULL) {
printf("Cannot open file.\n");
}

if(fwrite(floatValue, sizeof(float), 5, fp) != 5)
printf("File write error.");
fclose(fp);

/* read the values */
if((fp=fopen("test", "rb"))==NULL) {
printf("Cannot open file.\n");
}

if(fread(floatValue, sizeof(float), 5, fp) != 5) {
if(feof(fp))
printf("Premature end of file.");
else
printf("File read error.");
}
fclose(fp);

for(i=0; i<5; i++)
printf("%f ", floatValue[i]);

我的问题是我是否想写入和读取二维数组??

最佳答案

您可以使用相同的方法...只需进行以下更改

float floatValue[3][5] = {{ 1.1F, 2.2F, 3.3F, 4.4F, 5.5F },
{ 6.6F, 7.7F, 8.8F, 9.9F, 8.8F },
{ 7.7F, 6.6F, 5.5F, 4.4F, 3.3F }};
int i,j;

...

if(fwrite(floatValue, sizeof(float), 3*5, fp) != 3*5)

...

if(fread(floatValue, sizeof(float), 3*5, fp) != 3*5) {

...

for(j=0; j<3; j++) {
for(i=0; i<5; i++)
printf("%f ", floatValue[j][i]);
printf("\n");
}

当然请注意,这不是保存/加载数据的最佳方式,特别是如果您希望在不同的编译器/系统之间具有某种兼容性,甚至只是与 future 兼容。保存和恢复的主题通常称为序列化,只需很少的开销,您就可以获得更大的灵 active ,尤其是在数据模型变得更加复杂的情况下。

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

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