繁体   English   中英

从C中的文本文件读取大量数字

[英]Reading large amounts of number from a text file in C

我正在尝试从文本文件中读取大量数字数据(双精度)。 文本文件有10列,每列列出了242个数字。 列由空格分隔。 我正在尝试专门采用第一列和第七列并将它们放入数组中。 目前,我正在尝试:

int i;
double a;
double b;
double junk;
double array[2][242]

FILE *fp;
fp = fopen("data_table.dat", "w");
for (i = 0; i <= 242; i++);
{
    fscanf(fp, "%f %f %f %f %f %f %f %f %f %f\n", a, junk, junk, junk, junk, junk, b,
    junk, junk, junk);
    array[0][i] = a;
    array[1][i] = b;
}
fclose(fp);

我当时的想法是打开文本文件,读取双打的一行,然后将第一列和第七列保存到数组中,其余则为垃圾。 但是,当我随后检查数组时,数组中的每个条目都是6.943e-310,它甚至与数据表中的任何数据都不接近。

可能需要注意的另一件事是,运行此命令后,整个文本文件为空。 我可以再次用值填充它,但是在运行代码后,它再次为空。 此外,每列中的第一项也是该列中数据的字符串(例如,第一列以nm长度开始)。

您在fp = fopen("data_table.dat", "w");使用“ w”选项打开了要写入的文件fp = fopen("data_table.dat", "w");

您想用“ r”打开它进行读取,否则将截断该文件,这就是为什么之后看不到它的原因。

  1. (因为@Ranic同时发布了)您想从“ data_table.dat”中读取内容,但是用“ w”打开它。 该调用将文件截断为0号。改用“ r”。
  2. 您必须将指针( &junk&a &b )传递给fscanf()而不是值

暂无
暂无

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

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