将2d数组写入C中的文件
发布时间:2020-12-16 03:35:37 所属栏目:百科 来源:网络整理
导读:我曾经使用下面的代码将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 e
我曾经使用下面的代码将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,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,5.5F },{ 6.6F,7.7F,8.8F,9.9F,8.8F },{ 7.7F,6.6F,5.5F,3.3F }}; int i,j; … if(fwrite(floatValue,3*5,fp) != 3*5) … if(fread(floatValue,fp) != 3*5) { … for(j=0; j<3; j++) { for(i=0; i<5; i++) printf("%f ",floatValue[j][i]); printf("n"); } 当然,请注意,这不是保存/加载数据的最佳方法,尤其是如果您希望在不同编译器/系统之间或甚至未来之间具有一些兼容性.保存和恢复的主题通常被命名为序列化,只需很小的开销就可以获得更大的灵活性,尤其是在数据模型变得更复杂的情况下. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |