gpt4 book ai didi

C++读取字节问题

转载 作者:太空狗 更新时间:2023-10-29 20:46:55 25 4
gpt4 key购买 nike

我有这个问题,我不知道是否是预期的,事情是这样的:

我正在尝试将文件中的字节加载到这样的结构中:

struct
{
char
char
char
char
unsigned int
}

但问题是当 unsigned int 被填充时,似乎在读取流中交换了字节,例如如果文件包含 0x45080000,则 unsigned int 将为 0x84500000,这是错误的。

如果我将 unsigned int 更改为 BYTE[4],这可以“解决”,但这不是我想要的。这是我用来从文件中读取的代码:

fopen_s( &mFile, "myFile.ext", "rb" );

if( mFile == NULL ) print( " **** E R R O R ! **** " );
else
{
if( fread( &myStruct, sizeof( MY_Struct ), 1, myFile) != 1)
{
print( " **** E R R O R ! **** " );
return 0;
}
}

这是预期的行为还是我做错了什么?

问候

最佳答案

正如您所发现的,可移植序列化可能会很痛苦。您需要以规范化格式(网络字节顺序很常见)单独序列化每个属性,而不是编写和读取结构。然后,当您反序列化字节时,这些字节会正确返回。

关于C++读取字节问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6835062/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com