C言語なら俺に聞け(入門篇) Part 23
レス数が950を超えています。1000を超えると書き込みができなくなります。
0989985
2008/01/23(水) 02:48:00というのは、まず
---
int result = 0;
while((c = fgetc(fp)) != EOF) {
if (c == 'h') {
result = 1;
break;
}
return result;
---
とすると、ファイルに'h'が含まれるかどうか前向きに1文字づつ判定していけます。しかしここで、
'h'が見付かったあと、逆の方向へ後向きに1文字づつ、別の文字'H'が含まれるかも判定したいのです。
---
int result2 = 0;
fseek(fp, -1, SEEK_CUR); //nakusitai
if (result) {
for (i=0; i<100; i++) { //'h'の前100文字に限り後向きに検索
fseek(fp, -1, SEEK_CUR); //nakusitai
c = fgetc(fp); //1文字分進んでしまう
if (c == 'H') {
result2 = 1;
break;
}
fseek(fp, -1, SEEK_CUR); //nakusitai
}
}
---
単純にファイルに'H'が含まれてるだけでなく、'h'の何文字の前に'H'が含まれているかを判定しようとしています。
とここまで書いてなんですが、
>あらかじめファイルの中身をメモリに置いておけば、いくらでも読み直せる
ですよね。大きめの配列容易して、まずファイル内容読み込んで、処理すれば解決しそう。ありがとう
レス数が950を超えています。1000を超えると書き込みができなくなります。