2011-01-21 6 views
2

私は、これらの構造のいくつかの内部で持っているバイナリファイルを更新しようとしています:はそれを上書きせずにバイナリファイルを更新 - > C

typedef struct _test{ 
char question[100]; 
char answer[100]; 
}test; 

いくつかの点では、私は、答えの1を更新したいですファイルの中に保持されている(ファイルへの回答をもう一度書き戻す)のですが、ファイルを更新するたびに、すべてのファイルが消去され、新しいテスト構造だけが書き込まれます(wb、wb + fseekでカーソルを設定しますが、運はありません)。

ファイル全体を消去しないようにファイルを編集するにはどうすればよいですか?

答えて

3

fopen("myfile.txt", "r+b")を使用してください。

+1

バイナリでファイルに書き込みますか?またはrb +モードがトリックですか? – John

+0

John:はい "rb +"または "r + b"はバイナリモードを使用します。 (私は、MSのドキュメントでは "b"が最初の文字として表示されてはならないと言っているのに驚いています(http://msdn.microsoft.com/en-us/library/yeby3zcb%28v=vs.80%29を参照)。 .aspx);これを修正するために編集します。) –

+0

説明をいただきありがとうございます! – John

関連する問題