fstreamを使って読み書きするためにファイルを開き、各文字を読み込んでその文字をファイルに書き戻す必要があります。たとえば、私はこのコードを持っています。読み書き用のC++ファイルストリーム
「ABCD」を含む"test.txt"
というファイルがあります。ストリームオブジェクトのput()
とget()
の両方のメソッドは、ファイルポインタを前方に移動します(これは、tellg()
またはtellp()
の戻り値を各get()
またはput()
メソッドコールの後に取得することによってわかります)。私の質問は、ストリームポインタを "どこにあるか"(in.seekg(in.tellg()
)にしようとしているコードをコメントアウトすると、コードが不正確な結果になります。私はtellg()
が読み取るべき文字の正しい位置を示しているので、これがなぜであるのか分からない。明示的にそれを求める目的は何か?私はVisual Studio 2005を使用しています。
誤った結果は、 "ABCD"ではなく "ABBB"というファイルに書き込みます。
なぜこの「シーク」ビジネスをやっているのですか? – ForceBru
どのように正確に「間違った」結果? – mazhar
'tellg()'は 'int'ではなく' streampos'を返します。あなたの「間違った」結果は何ですか? –