繁体   English   中英

如何将二维数组保存到C中的文件?

[英]How to save a 2-Dimensional array to a file in C?

我是一名初学者C程序员,目前正在从事使用C实现中提琴琼斯对象检测算法的项目。我想知道如何将二维数组中的数据存储到可以轻松实现的文件中通过不同的程序文件(例如main.c,header_file.h等)移植和访问

先感谢您。

没有足够的细节来确保您要寻找的是什么,但是您想要做的基本结构看起来像这样:

open file.csv for writing
for(iterate through one dimension of the array using i)
{
for(iterate through the other dimension of the array using j)
   { 
   fprintf(yourfilehandle,"%d,",yourvalue[i][j]);
   }
fprintf(yourfilehandle,"\n");
}
close your file

正如其他人所建议的那样,这将为您留下.CSV文件,这是一个不错的选择,因为它易于读取和解析,并且您可以在记事本或Excel中打开文件并查看它没有问题。

这是假设您确实打算使用C文件I / O来完成此操作,这是一种非常有效的处理方式,有些人只是觉得它有些陈旧。

请注意,这在行尾留下了多余的逗号。 如果这使您感到烦恼,则只需执行前后条件就可以了,只需在所需的位置得到逗号即可。 提示:它涉及在第二个for循环内的条目之前打印逗号,减少要在内部for循环中迭代的条目数量,并在内部for之前和之后立即打印出每行特殊的第一个和最后一个情况循环。 可能很难解释这一点。

这是 C风格文件I / O的参考, 这是一个教程

在不知道您要存储哪种数据的情况下,我想将其存储为矩阵。 您需要选择一个定界符来分隔元素(制表符或空格是常见选择,分别是“ tsv”和“ csv”),然后用一些标记行尾(在这里换行是一个不错的选择) 。

因此,您保存的文件可能类似于:

10 162 1 5
7 1 4 12
9 2 2 0

您还可以将格式定义为在第一行中包含一些元数据-如果要预分配内存以及其他信息(例如字符编码),则行数和列数可能很有用。 从简单开始,并根据需要添加!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM