1

バイナリ ファイルの最後の 32 文字に情報を書き込みたい。しかし、writeInfo 関数を呼び出すと、コンテンツ全体が削除されます。書き込む前にデータを読み取ることはできますが、この関数で書き込んだ後は、書き込むのではなく、コンテンツ全体を削除します。

void Info::writeInfo(char *filedestination)
{
ofstream test;
test.open(filedestination, ios::binary); 
test.seekp(-32, ios::end); // not sure about seekp
test.write(info, 31);
test.close();
}

あなたが助けてくれることを願っています、ありがとう

4

2 に答える 2

2

openへの呼び出しによってファイルが切り捨てられないようにするには、ファイルを読み取り/書き込みモードで開く必要があります。

test.open(filedestination, ios::binary | ios::in | ios::out); 
于 2013-03-17T18:50:48.120 に答える
0

http://www.cplusplus.com/reference/cstdio/fseek/

fseek() を使用してみてください。上記のリンクはドキュメントです

于 2013-03-17T18:44:49.337 に答える