功能"fread()"不读取特定文件类型?
Function "fread()" not reading specific file types?
我有此代码的剪辑,以便将某些文件加载到内存中,将其加入 data 。
我想阅读的相同路径中有三个文件: XML ,A png 和A ttf font文件。这三个都是成功打开的,其大小在 size 中显示。不幸的是,只有 XML 和 png 才能读取 data 。
ttf 文件获取正确的 size ,同样适当的结果 fread ,但一个空的(不是null( data 和空的 fp-> _ base 。
char* data;
size_t size = 0;
FILE *fp = fopen(completeFilePath, "rb");
if (fp != NULL) {
fseek(fp, 0, SEEK_END);
size = ftell(fp);
fseek(fp, 0, SEEK_SET);
data = new char[size];
size_t result = fread(data, sizeof(char), size, fp);
fclose(fp);
}
您能把一些问题带入这个问题吗?
非常感谢。
nul字节并不意味着它发现的任何内容的终结。这只是许多C标准库函数使用的约定。文件包含一个nul字节,然后再有更多字符,这是完全有效的。这正是您的data
中的内容:NUL字节,然后是更多字符。所以它实际上不是空的;您只是错误地假设它是。
相关文章:
- 通过C++从目录中过滤特定文件类型
- Ini 文件类型名称 预期C++
- 用于随机数据访问的最有效文件类型
- Visual Studio 2019 - 设置文件类型的默认扩展名
- 如何使用C++将.trc文件类型转换为文本文件?
- 如何指定可以打开的文件类型
- 更改代码::块上的默认保存文件类型
- 使用文件对话框选择包含特定文件类型的文件夹?
- MFC,查找特定文件类型
- 搜索并限制为特定文件类型VS2017
- 是否可以将Visual Studio 2017将C 代码编译到EXE以外的文件类型中
- VIM:执行复杂文件类型的脚本和显示结果
- 功能"fread()"不读取特定文件类型?
- 如何在用户修改后使用旧版驱动程序中的 PE 标头获取原始文件类型
- 在makefile中更改构建规则以构建多种文件类型
- 使QT/C 程序显示其文件类型,如Windows上已知
- 是否可以将其他文件类型添加到Visual Studios清理过程中
- 强制将特定文件编译为Objective-C/文件类型,但将整个项目编译为Objective C++
- 如何从FindFirstFile()中获取多个文件类型是可能的吗
- 跨平台方式获取用户友好的文件类型描述