fopen( ,+a)で1つだけポインターが進むのを何とかしたい

[戻る]
まる 2002/11/07(木) 01:33:34
fopen(  ,+a)すると、fputもしていないのに、確かにfopen(  ,+w)と違って、前のデータは保
存される上、読み書きのポインターがトップに来ず、前書いたところの直後から書き込めるよう
ですが、1byteだけポインターが進んでしまうようですが、1つだけ戻す方法はあるでしょう
か?
それと今いるファイル内のポインターはどうやって読み取れるのでしょうか?

アイススケーター 2002/11/07(木) 08:04:32
FILE*  fp;

fp = fopen( "FileName", "a+")で確認しましたが、そのような現象は発生しませんでした。

環境:VS6

なお、fopen(  ,+a)は間違いです。

まる 2002/11/07(木) 11:55:02
アイススケーターさん。
ありがとうございます。

なぜかアイススケーターさんのパソコンと私の
パソコンで違うことが起きるかはわからないのですが、
実際に
fp = fopen( "FileName", "a+");
ごとに
1バイト勝手に進んでしまったとすると、
そのポインターをどうして、1バイト引き戻せばいいのでしょうか?

あば 2002/11/07(木) 12:45:30
void rewind( FILE *stream );

long ftell( FILE *stream );

int fseek( FILE *stream, long offset, int origin );

int fgetpos( FILE *stream, fpos_t *pos );

この辺使いまわしたらなんでも出来るんじゃありませんか?

アイススケーター 2002/11/07(木) 12:47:53
確認してみますので、ファイルを書き込んでいるソースを掲載していただけませんか。

私の場合、正常に書き込んで、ダンプ表示したけども問題なく書き込めていました。

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