FILE* in = ::fopen(file, "rb");
if(in)
{
::fseek(in, 0L, SEEK_END);
long size = ::ftell(in);
::fseek(in, 0L, SEEK_SET);
if(size > 0)
{
std::shared_ptr<uint8_t> data(new uint8_t[size], std::default_delete<uint8_t[]>());
size_t readBytes = ::fread(data.get(), 1, size, in);
if(readBytes)
{
LOG("Loaded file resource: %s \n", file);
}
else
{
LOG("Failed to load resource file: read byte zero %s \n", file);
}
}
else
{
LOG("Failed to load resource file: size zero %s \n", file);
}
::fclose(in);
}
else
{
LOG("Failed to open resource file: %s, FAILED with %d\n", file, errno);
}C 读取文件
于 2023-03-18 18:02:31 首次发布
该代码片段展示了如何使用C++标准库打开一个二进制文件,获取其大小,然后将其内容读取到内存中。如果文件无法打开或读取失败,程序会记录相应的错误信息。

被折叠的 条评论
为什么被折叠?



