![]() |
1
4
请注意,您没有将学生的姓名写入文件。您只是在写指向该字符串的指针。这当然不是你想要的。当您读取文件时,您正在读取不再有效的指针。 要么将整个字符串放入结构中(不是字符指针,而是字符数组),要么将字符串单独写入文件。 |
![]() |
2
3
不要调用你的函数
所以在你的
在您的
通常,在指针上执行I/O非常糟糕。它只对相同的过程有意义。 你想做的叫做 serialization 对于 software engineering 我建议使用文本格式进行序列化的原因(例如。 JSON ,可能使用 Jansson 库)。文本格式不那么脆弱,更易于调试。 假设您将以JSON格式对学生进行编码,如
下面是一个使用Jansson的JSON编码例程:
请注意,您需要一个函数来释放
您可能还需要宏
现在,这里是使用Jansson的JSON解码例程;它给出了一个
您还可以决定以某种二进制格式序列化(我不建议这样做)。然后你们应该定义你们的序列化格式并坚持它。很可能你们必须编码学生id、名字的长度、名字。。。。
你也可以(在C99中)决定学生的
你真的希望学生姓名的长度不同。然后,不能简单地将不同长度的记录放在
|
![]() |
3
1
在里面
当你提到它时
|
![]() |
adam · 在java中读取文件偏移量时出现问题 2 年前 |
![]() |
Jon · Python从HTTPS aspx下载图像 7 年前 |
![]() |
Programmer · 我需要有关二进制文件[副本]的帮助 7 年前 |
![]() |
CodeXtack · 从二进制文件c获取值类型# 7 年前 |
![]() |
Naveen · 在C语言中从二进制文件读写整数++ 7 年前 |
![]() |
Grechka Vassili · 二进制文件中的读写结构[关闭] 7 年前 |