私のプログラムはかなり長くて複雑なので、すべてを説明することはできませんが、私の現在の状況を説明しようと思います。
私は .dat ファイル (729 のうち、この例では 1 つだけ) を持っており、ファイル全体を (新しいデータが現在のデータよりも小さい場合でも) 16 進値を含むいくつかの文字列で上書きする必要があります。
これが私のプログラムのスニペットです:
ofstream xbox_final(xboxit->c_str(), ios::binary);
//other stuff
xbox_final.write("0a00000a00054c6576656c070006426c6f636b7300008000", 48);
xbox_final.write(new_bytes, new_bytes.length());
xbox_final.write(xboxbytes, xboxbytes.length());
xbox_final.close();
ofstream の "xboxit->c_str()" は、ファイル リストから BUNCH のファイルを入力および出力しているため、そこにあり、これは必要でしたが、意味があればエラーは発生しません。
文字列「new_bytes」と「xboxbytes」には 16 進値が含まれます (000007000a0445 など...)
今のところ、私のプログラムはテキスト ドキュメントに書き込んでいます。その 16 進データをその順序で .dat ファイルに書き込む必要があります。
私はいくつかの検索を行い、これで const char の問題が修正されました。
//other stuff
string header("0a00000a00054c6576656c070006426c6f636b7300008000");
WriteStr2BinFh( header, xbox_final);
WriteStr2BinFh( new_bytes, xbox_final);
WriteStr2BinFh( xboxbytes, xbox_final);
//other stuff
void WriteStr2BinFh( const std::string& St, std::ostream &out )
{
out.write( St.c_str(), St.size() );
}
別の場所に新しい .dat ファイルを作成することも、許容されるオプションです。
16 進数値を書き込めません。常に DAT ファイルにテキストとして表示されます。
どんな助けでも大歓迎です:)