特定行のテキストデータの読み込み

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
mint

特定行のテキストデータの読み込み

#1

投稿記事 by mint » 15年前

質問させてください。

次のようなテキストがあった場合に、例えば3行目(1 0 0)だけを読み取りprintfしたいと考えています。


1 0 1
1 1 1
1 0 0
0 1 1
・・・

テキストの読み込み方法として、while(fscanf(fp,%d %d %d",&a,&b,&c)!=EOF)
のような方法しか知らないのですが、これだと特定の行だけを指定できずに、全行が出力されてしまいます。

特定の行だけを出力する方法はありますか?
よろしくお願いします。

シエル

Re:特定行のテキストデータの読み込み

#2

投稿記事 by シエル » 15年前

fgetsで読み込みたい直前の行まで読んで、読み込みたい行にきたら、fscanfを使う。
実用的ではないでしょうが。。

バグ

Re:特定行のテキストデータの読み込み

#3

投稿記事 by バグ » 15年前

こんな感じ?
#include <stdio.h>

#define STRING_LENGTH_MAX    4096
#define SHOW_LINE            1

int main(void)
{
    int cnt = 0;
    char str[STRING_LENGTH_MAX] = {'\0', };
    FILE* fp;

    if ((fp = fopen("test.txt", "r")) == NULL)
    {
        return -1;
    }

    for (; cnt < SHOW_LINE && fgets(str, STRING_LENGTH_MAX, fp) != NULL; ++cnt);

    if (cnt == SHOW_LINE)
    {
        printf("%s", str);
    }

    fclose(fp);
    return 0;
}

mint

Re:特定行のテキストデータの読み込み

#4

投稿記事 by mint » 15年前

ありがとうございました!!!
できました!!!!

閉鎖

“C言語何でも質問掲示板” へ戻る