0

我是一名初学者 C 程序员,我目前正在开发一个使用 C 实现 viola jones 对象检测算法的项目。我想知道如何将二维数组中的数据存储到一个文件中由不同的程序文件(例如 main.c、header_file.h 等)移植和访问

先感谢您。

4

2 回答 2

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 循环迭代的条目数,并在内部 for 之前和之后打印出每行特殊的第一个和最后一个 case循环,分别。可能很难解释这样做。

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

于 2013-11-17T04:09:01.143 回答
0

在不知道您存储的数据类型的情况下,我会说将其存储为矩阵。您需要选择一个分隔符来分隔您的元素(制表符或空格是常见的选择,分别是 'tsv' 和 'csv'),然后是用来标记行尾的东西(新行是一个不错的选择) .

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

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

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

于 2013-11-17T03:06:07.243 回答