• 締切済み

数値データの読み出しについて

初歩的な質問かもしれませんが、よろしくお願いします。 下にあるようなdatファイルがあったとします。 これらのデータから例えば2列目のみを数値として読み出したい場合、どのようなプログラムを書けばよいのか教えていただけないでしょうか。 datファイルの中身 0 112 13 1 231 28 2 388 41 3 621 23 4 980 34 ・ ・  ・ ・ ・  ・ ・ ・  ・

みんなの回答

  • Quant
  • ベストアンサー率18% (23/122)
回答No.4

// test.c #include <stdio.h> main() { FILE *fp; int d; fp = fopen("test.dat","r"); while(fscanf(fp,"%*d%d%*d",&d) == 1) printf("%d\n",d); fclose(fp); } test.dat 0 112 13 1 231 28 2 388 41 3 621 23 4 980 34

回答No.3

眠いので急ごしらえですが、例えばこんなのとか? #include <string.h> #include <stdio.h> int main(void) { char **ap, *token[10], *input_string; char line[1024]; int value[1024], num_value; int i; for (num_value = 0; fgets(line, sizeof(line), stdin) != NULL;) { input_string = line; for (ap = token; (*ap = strsep(&input_string, " \t")) != NULL;) if (**ap != '\0') if (++ap >= &token[10]) break; value[num_value] = strtol(token[1], NULL, 0); if (++num_value > (sizeof(value) / sizeof(value[0]))) break; } for (i = 0; i < num_value; i++) { printf("%d\n", value[i]); } return 0; }

  • D-Matsu
  • ベストアンサー率45% (1080/2394)
回答No.2

「ファイルの途中だけ抜き出して読む」よりも、「全部読んでおいて必要な部分だけを抜き出す」方が圧倒的に簡単です。

  • edomin7777
  • ベストアンサー率40% (711/1750)
回答No.1

1行目は読めるの? 2列目って、 112,231,288,621,980,… っていうこと?

関連するQ&A