gpt4 book ai didi

c++ - 二进制文件应该是什么样子的?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:57:19 25 4
gpt4 key购买 nike

我是编程初学者,但遇到了问题。我想在我的二进制文件中写入一个结构。我不确定结果。结构如下:

struct clientData
{
unsigned int id;
char name[25];
char post[15];
char degree[10];

clientData(unsigned int, char*, char*, char*);
};

如您所见,我的结构包含一些 char 字符串。这是主要问题:我的字符串是否应该在最终二进制文件中重新转换(这样它们对于记事本等应用程序来说不可读)?因为我的结果看起来像那样(我无法添加图像,所以我只是粘贴它):

Miles Edgecombe МММММММММdocent ММММММММpew1 МММММММ

这就是我写入二进制文件的方式:

ofstream binary_1st("binary_input.dat", ios::out | ios::binary);
...
binary_1st.write((char*) &cl, sizeof(clientData));
...
binary_1st.close();

最佳答案

您正在按原样 向文件写入结构,没有任何序列化或打包。所以结构将按原样编写,字符串将是可读的(如果它们在代码中可读),数字将是数字等。

顺便说一句,这个 M 在里面

Miles Edgecombe МММММММММdocent ММММММММpew1 МММММММ

意味着结构中的字符数组在写入字符串之前不会归零,因此末尾没有尾随零,因此“thrash”将写在末尾。

关于c++ - 二进制文件应该是什么样子的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16526934/

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