ある行が探索できない
すいませんが、前回同じような質問をしましたが、再度質問します。文字列の探索で、
printf("Input Filename...");
scanf("%s",fname);
while(1){
fp = fopen(fname, "r");
if(fp == NULL){
printf("ファイルを開くことができません...\n");
printf("Input Filename...");
scanf("%s",fname);
}else break;
}
// fscanf(fp,"%s",fname); //1行目以外のみ可能
// fread(s1, 1000, 1000, fp); //上記
// s1 = fgetc(fp);
fgets(s1, 10000, fp); //1行目のみ可能
// s1 = fscanf(fp);
// s1=fp;
// printf("文字列1を入力してください:");
// scanf("%s",s1);
printf("文字列2を入力してください:");
scanf("%s",s2);
cp = strstr(s1, s2);
if(cp == NULL)
printf("%sに%sのいずれの文字も含まれない.\n", s1, s2);
else
printf("%sの中に現れる%sという文字列は%d文字目にある.\n", s1, s2, cp - s1 + 1);
free(s1);
free(s2);
というプログラムを作ったのですが、仮に3行のテキストファイルを読み込ませると、コメントの通り、
fscanf(fp,"%s",fname); //1行目以外のみ可能
fread(s1, 1000, 1000, fp); //上記
とすると、2,3行目のみが探索出来て、
fgets(s1, 10000, fp); //1行目のみ可能
とすると、1行目のみが探索可能になっています。
すべての行を探索可能にするにはどうすれば良いか教えてください。