- 締切済み
数値データの読み出しについて
初歩的な質問かもしれませんが、よろしくお願いします。 下にあるようなdatファイルがあったとします。 これらのデータから例えば2列目のみを数値として読み出したい場合、どのようなプログラムを書けばよいのか教えていただけないでしょうか。 datファイルの中身 0 112 13 1 231 28 2 388 41 3 621 23 4 980 34 ・ ・ ・ ・ ・ ・ ・ ・ ・
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- Quant
- ベストアンサー率18% (23/122)
// 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
- hanabutako
- ベストアンサー率54% (492/895)
眠いので急ごしらえですが、例えばこんなのとか? #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)
「ファイルの途中だけ抜き出して読む」よりも、「全部読んでおいて必要な部分だけを抜き出す」方が圧倒的に簡単です。
- edomin7777
- ベストアンサー率40% (711/1750)
1行目は読めるの? 2列目って、 112,231,288,621,980,… っていうこと?