起動時に定義済みの文字列をファイルに書き込むプログラムを作成しています。ファイルのサイズは約 5 mb であるため、文字列を 16 進数で 5 mb のデータで埋めることは大きな変数です。コンパイルしようとすると、文字列が大きすぎるというエラーが表示されます。5MBってそんなに大きいの?文字列を 4 つのセクションに分割しましたが、各セクションはまだ大きすぎます。:/ この状況を解決するために、すばやく簡単にできることは何ですか。
注: 私は自分自身を初心者のプログラマーだと考えているので、頭を使いすぎないようにしてください :P
文字列をファイルに書き込む方法の例:
string file_hex("huge_a**_string_goes_here_or_in_separate_cpp");
ofstream file_out;
file_out.open("tools\\c.exe", ios::binary | ios::trunc);
string res;
res.reserve(file_hex.size() / 2);
for (int i = 0; i < file_hex.size(); i += 2)
{
std::istringstream iss(file_hex.substr(i, 2));
int temp;
iss >> std::hex >> temp;
res += static_cast<char>(temp);
}
file_out << res;
file_out.close();