作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我是编程初学者,但遇到了问题。我想在我的二进制文件中写入一个结构。我不确定结果。结构如下:
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/
我是一名优秀的程序员,十分优秀!