C言語でファイルから特定の文字を抽出
現在C言語でプログラム開発しています。
文字列が並んだテキストファイルから特定の部分のみを抽出したいのですが、うまくいきません。
お力を貸していただけないでしょうか。
テキストファイルの構造はこんな感じです。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
文字列
文字列
文字列badresult=*****文字列badresult=*****文字列badresult=*****文字列result=*****
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
これが10セット程記述されたファイルです。
ここから全てのbadresultの数値とresultの数値を抽出したいのです。
私が現段階で作成したプログラムがこちらです。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAXLINE 2084
int main(void){
FILE *fp;
char line[MAXLINE];
char s1[]="badresult";
char s2[]="result=";
char *r;
if ((fp = fopen( "テキストファイルへのダイレクトパス", "r" )) == NULL){
printf("エラーメッセージB\n");
exit(1);
}
while (fgets(line, MAXLINE, fp) != NULL){
if(strstr(line,s1)!=NULL){
printf("%.27s",strstr(line, s1),"\n");
printf(" ");
printf(strstr(line, s2));
}
}
}
ですがこれだと1行に全てのbadresultが含まれているため、結果は
-----------------------------
badresult=***** result=******
-----------------------------
とbadresultは1つしか出てきません。
strstrのポインタをどうにかできないかと考えたのですが、
私のC言語の知識も浅いためなかなかうまくできません。
Cプログラミングに精通している方、どうか改善策を教えていただけないでしょうか。
できればなるべく簡単な方法ですと助かります。