質問させてください。
次のようなテキストがあった場合に、例えば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:特定行のテキストデータの読み込み
こんな感じ?
#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;
}