gpt4 book ai didi

C 文件保存和恢复输入信息

转载 作者:行者123 更新时间:2023-11-30 14:41:16 24 4
gpt4 key购买 nike

我有一个基于具有不同信息的结构的程序。在这个程序中,您可以例如添加人员和删除人员等。我已经完成了所有这些,因此程序本身已完成。但文件不是。

所以我试图编写一个代码,如果我添加一个人,那么它会“保存”,当我选择退出程序时,这会“保存”。还有一段在程序开头“恢复”文件中人物的代码。

有人有什么想法或建议吗?我是编程新手,正在努力学习。我已经坐了几天了。在“恢复”之前,我要求打开一个文件,如果该文件不存在,则会创建一个新文件并且该文件有效。因此,如果我有一个包含 3 名员工的文件,并且我要打开该文件,我希望恢复他们,然后能够向该文件添加更多员工等。

最佳答案

您必须分两步写入(和读取):首先是结构体,然后是结构体指向的数组。用于编写的代码片段(a.o.没有错误检查,但这是需要的):

#include <stdio.h>
// ...
employees emp;
const char* filename="your_filename";
// populate emp;
FILE* file = fopen(filename,"w");
fwrite(&emp,sizeof(employees),1,file);
fwrite(emp.pic,sizeof(int),emp.imageCount,file);
fclose(file);

现在您的文件中的结构后面有了数组。以同样的方式阅读:

FILE* file = fopen(filename,"r");
fread(&emp,sizeof(employees),1,file);
emp.pic=calloc(sizeof(int), emp.imageCount);
fread(emp.pic,sizeof(int),emp.imageCount,file);

请不要忘记检查错误(请参阅man fopen|fread|fwrite|calloc)。如果您有多个结构,则必须对任何元素重复这两个步骤。

关于C 文件保存和恢复输入信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55060443/

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