我是初学者C程序员,我目前正在开发一个使用C实现中提琴对象检测算法的项目。我想知道如何将二维数组中的数据存储到一个文件中可以通过不同的程序文件轻松移植和访问(例如main.c,header_file.h等)
提前谢谢。
答案 0 :(得分:1)
没有足够的细节来确定你在寻找什么,但你想要做的基本结构看起来像这样:
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循环的条目数,并打印出每行特殊的第一个和最后一个案例,紧接在内部之前和之后循环,分别。很难解释这样做,可能。
Here is a reference用于C风格的文件I / O,以及here is a tutorial。
答案 1 :(得分:0)
我不知道你要存储什么类型的数据,我会说将它存储为矩阵。你需要选择一个分隔符来分隔你的元素(标签或空格是常见的选择,分别叫'tsv'和'csv'),然后标记一行的结尾(新行是一个很好的选择)
因此,您保存的文件可能如下所示:
10 162 1 5
7 1 4 12
9 2 2 0
您还可以将格式定义为在第一行中包含一些元数据 - 如果要预先分配内存以及字符编码等其他信息,则行数和列数可能很有用。从简单开始,根据需要添加!