【发布时间】:2020-02-29 02:21:13
【问题描述】:
这是我的代码:
ifstream ifile;
list<unsigned char> fbinary;
ifile.open(filename, ios::binary);
if (ifile.fail() || !ifile.is_open())
return false;
ifile.seekg(0, ios::end);
int sz = ifile.tellg();
if (sz <= 0)
return false;
try
{
//Get Binary And Encrypt with XOR
ifile.seekg(0, ios::beg);
unsigned char temp = 0;
while (ifile)
{
ifile.read((char*)temp, sizeof(unsigned char));
temp ^= Encrypt_Key;
fbinary.push_back(temp);
}
ifile.close();
}
...
file.open 和获取文件大小不会失败。我不知道为什么ifile.read() 会触发调试断言。
错误信息:
表达式:缓冲区!= nullptr
【问题讨论】:
-
我在这段代码中既没有看到调试断言,也没有看到变量
buffer。 -
请提供完整的错误信息。在您包含在问题中的那一行之前或之后会有更多的行。此处还需要minimal reproducible example 以获取调试帮助。
-
链接图像给出 404,您应该将错误消息作为纯文本编辑到问题中。见How to Ask。
-
@64BitO2 任何相关代码(和错误消息)都应在问题中,如文本。不在外部链接后面。
-
(char*)temp应该是&temp。