ファイルポインタについて

[戻る]
SPA 2004/04/06(火) 11:44:36
こんにちは、ファイルポインタについて少々お聞きしたい事があります。

バイナリデータのファイルを開き、
そこからfgetcで一文字ずつデータを取得しているのですが、
読み込んでいる途中にファイルポインタが終端まで行ってないのに
何故かいきなり _ptr のデータが _base に戻ってしまいます。
しかもそのまま続けて fgetc を行ってもファイルポインタが
進んでくれません…。
読み込んだデータもおかしな数値が入ってくるし…。

何故、このような現象が起こるのでしょう?
ちなみに読み込んでいるデータはWaveファイルです。

環境 : Win2000、VC++6.0

SPA 2004/04/06(火) 12:57:27
すいません。
正確にはFILEポインタ構造体の _cnt の値が少ない事が原因のようです。
ファイルポインタを使用してWaveなどのファイルを読み込む事は
出来ないのでしょうか?
他のファイルを読み込んでも _cnt のデータが少なくなっていたので…。

瀬戸っぷ [E-Mail] 2004/04/06(火) 14:25:23
FILE構造体の中身は環境依存なのでメンバは通常は参照しないと思われますが…
とりあえず、オープンモードや読もうとしているファイルのサイズとかの
問題というコトはないでしょうか?

# CreateFile()APIでアクセスするからよく判らない。

SPA 2004/04/06(火) 14:29:53
[[解決]]
何度もすいません。
何とか自力で解決できました。

ご迷惑をお掛けしました。

PATIO 2004/04/06(火) 16:07:48
質問したのですから、
自己解決した場合でもどういう問題があって、どう解決したのか
事の顛末をきちんと書いてください。
ここは駆け込み寺ではなくて、情報を共有する場です。
問題に対する解決策がないスレッドは、共有情報としての価値があまり有りません。
少なくともSPAさんは解決したのですから、きちんとスレッドを閉じてほしいです。

SPA 2004/04/10(土) 21:25:43
>質問したのですから、
>自己解決した場合でもどういう問題があって、どう解決したのか
>事の顛末をきちんと書いてください。

PATIOさん、申し訳ありませんでした。
原因としてはただ単に fopen でWaveファイルを開く際の
オープンモードを"rb"では無く"r"で開いていた
という初歩的なミスでした。
急いでいたという事と、原因があまりにも初歩的で
答える事が恥ずかしかったということもあり、
上記のような返答をしてしまいました。

大変申し訳ありませんでした。
以後、気を付けます。

古いスレッドには追加発言できません。