ifstream二进制文件错误

奥拉兹

我必须读取一个结构如下的二进制文件:n为1个字节,n个字节,4个字节等

那是我的代码:

char length;
file >> length;

char c[ 64 ];
file.read( c, length );

c[ length ] = 0;

int ver;
file >> ver;

问题:ver始终为0(在约2500个文件上),而不应该为0。长度输出正确的值,c也是如此。并在调用read之后,tellg返回-1。

萨胡

你说

n个字节,n个字节,4个字节等为1个字节

我建议使用:

char length;
file.read(&length, 1);

// Check the value of length and make sure you have enough space.
if ( length > 63 )
{
   // Deal with error condition
}

char c[ 64 ];
file.read( c, length );

c[ length ] = 0;

// Use a type that is know to be 4 bytes wide.
// Use read() instead of formatted input.
int32_t ver;
file.read(reinterpret_cast<char*>(&ver), sizeof(ver));

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C ++:提高ifstream二进制文件的读取速度

来自分类Dev

使用ifstream读取二进制文件

来自分类Dev

二进制文件如何“二进制”?

来自分类Dev

读取二进制文件时出现分段错误

来自分类Dev

bash错误:无法执行二进制文件

来自分类Dev

读取二进制文件时出现分段错误

来自分类Dev

C无效二进制文件中的错误消息

来自分类Dev

二进制 XML 文件行:错误膨胀类

来自分类Dev

jq-solaris 二进制文件响应错误

来自分类Dev

尝试编译包含二进制ifstream的代码时,编译会导致错误

来自分类Dev

使用ifstream从C ++文件中读取二进制无符号短整数

来自分类Dev

使用ifstream将二进制数据读入结构

来自分类Dev

使用ifstream将二进制数据读入结构

来自分类Dev

使用 ifstream read() 读取二进制结构

来自分类Dev

无效的二进制错误

来自分类Dev

iText二进制透明错误

来自分类Dev

了解二进制搜索错误

来自分类Dev

二进制搜索Java错误

来自分类Dev

大块读取二进制文件

来自分类Dev

搜索二进制文件C ++

来自分类Dev

杀死Haskell二进制文件

来自分类Dev

从二进制文件读取

来自分类常见问题

从OKHTTP下载二进制文件

来自分类Dev

Powershell二进制文件比较

来自分类Dev

二进制文件的图形直方图

来自分类Dev

Shellcode和二进制文件

来自分类Dev

C ++二进制文件构造

来自分类Dev

从二进制文件读取char *

来自分类Dev

写入二进制文件块