我试图从文本文件中读取大量的数值数据(双打)。文本文件有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)。
答案 0 :(得分:3)
您使用fp = fopen("data_table.dat", "w");
你想打开它而不是用“r”打开它,否则它会截断文件,这就是为什么你之后什么也看不到它。
答案 1 :(得分:3)
&junk
,&a
,&b
)传递给fscanf()
而不是值