c/c++语言开发共享将2d数组写入C中的文件

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

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]); 

我的问题是,如果我想写和读取2D数组?

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

     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"); } 

    当然,请注意,这不是保存/加载数据的最佳方式,尤其是如果您希望在不同编译器/系统之间或甚至未来之间具有一些兼容性。 保存和恢复的主题通常被命名为serialization ,只需很小的开销就可以获得更大的灵活性,尤其是在数据模型变得更复杂的情况下。

    而不是单个for循环,你将添加另一个,例如:

    需要了解更多c/c++开发分享将2d数组写入C中的文件,也可以关注C/ C++技术分享栏目—计算机技术网(www.ctvol.com)!

     for(i=0;i 

      以上就是c/c++开发分享将2d数组写入C中的文件相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/980371.html

      (0)
      上一篇 2021年12月13日
      下一篇 2021年12月13日

      精彩推荐