我正在製作一個程序,當它啓動時,會將一個預定義的字符串寫入一個文件中。該文件的大小約爲5 MB,因此用十六進制填充5 MB數據的字符串是一個很大的變量。當我嘗試編譯它時,出現錯誤提示字符串太大。 5MB真的很大嗎?我將字符串分成4個部分,但每部分仍然太大。 :/我可以快速輕鬆地解決這種情況。C++字符串太大,拖尾字符被截斷
注:我認爲我是一個新手程序員,所以儘量不要走太遠在我的頭上: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();
可不可以給一些示例代碼(顯然不是整個字符串)? – chris
240cfa010000c7442408acb2820089742404c7042406000000e86c5ef8ff89d883c4105b5e5fc38d7600c744240ce7010000c7442408acb2820089742404c7042406000000e8405ef8ffc744240ce8010000c7442408acb2820089742404c7042409000000e8205ef8ff8b1f85db7422c744240cf8010000c7442408acb2820089742404c704240a ... – mrg95
不是字符串的一部分,你可以提供一個使用字符串代碼的一部分嗎? –