アプリ版:「スタンプのみでお礼する」機能のリリースについて

初歩的な質問かもしれませんが、よろしくお願いします。

下にあるようなdatファイルがあったとします。
これらのデータから例えば2列目のみを数値として読み出したい場合、どのようなプログラムを書けばよいのか教えていただけないでしょうか。

datファイルの中身

0 112 13
1 231 28
2 388 41
3 621 23
4 980 34
・ ・  ・
・ ・  ・
・ ・  ・

A 回答 (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
    • good
    • 0

眠いので急ごしらえですが、例えばこんなのとか?



#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;
}
    • good
    • 0

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

    • good
    • 0

1行目は読めるの?



2列目って、
112,231,288,621,980,…
っていうこと?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!