簡體   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