fgets()関数を使用してテキストファイル全体で特定の区切り文字を検索している場合、fgets()がEOFで無限にループしないようにするにはどうすればよいですか?
delimiter1からdelimiter2までのすべての行をstruct1[i].string1に連結しています。ここで、iはdelimiter1/delimiter2パターンのn番目のオカレンスです。このパターンは、テキストファイル全体で最後まで続きます。最後まで、delimiter2の代わりに、EOFがあります。delimiter1からEOFまですべてを連結したいと思います。
int i;
while(fgets(temp_string,100,inFile) != NULL){
if(strcmp(temp_string,"Delimiter1")==0){ //checks to see if current line is delimiter1
j=strcmp(temp_string,"Delimiter2");
while(j!=0 && temp_string != NULL){ //Here I try to exit if it is the EOF
fgets(temp_string,100,inFile);
strcat(struct1[i].string1,temp_string);
j= strcmp(temp_string,"Delimiter2"); //update comparator
}
i++;
}
}
}
ただし、このコードを実行しようとすると、無限ループに陥ります。整数「i」が何であるかを示すprintステートメントを内側のwhileループに入れましたが、テキストファイル内のdelimiter1の総数である4に固定されていたため、EOFが私に無限ループ。
どんな助けでもいただければ幸いです。