将C中的ASCII表导入为数组

时间:2013-07-02 00:18:52

标签: c arrays

我将一系列数据保存为ASCII文件中的表格,例如:

1   100  2.345
2   342  8.233
3   65   89.23

在Python工作几年之后,我刚刚回到 C ,并且想知道是不是已经有任何库可以执行此导入了?像Python中的numpy.loadtxt()之类的东西?例如输出一个浮点数或一个双数组?我记得在过去我必须自己写一个程序才能在 C (例如C99)中完成这项工作,是否有任何标准软件包可以导入?如何将结果保存为ASCII文件?我可以自己为这两个人写一个程序,但我不想重复其他人在我之前所做的事情!

2 个答案:

答案 0 :(得分:1)

对于具有常规格式的机器生成的文件,fscanf()可以完美地工作:

int index;
int x;
double y;

while (fscanf(infile, "%d %d %lf\n", &index, &x, &y) == 3) {
    /* ... */
}

如果您希望能够处理包含任意数量列的文件,并且只是将文件输入到您以后可以搜索或操作的数据结构中,那么最好使用程序或脚本来生成相同的数据。 CSV或XML格式的表格。然后,使用libcsvMini-XML等库来为您解析文件。

答案 1 :(得分:1)

我写了自己的图书馆来做这件事(在这里非常及时回答我问题的人的帮助下),你可以看到它here。它可以将数据表(具有未知数量的标题,列和行)转换为可在程序中使用的C数组。我将不胜感激任何建议。谢谢。