通讯录管理系统的设计与实现C语言中保存联系人信息的函数
时间: 2023-12-11 17:05:21 浏览: 192
保存联系人信息是通讯录管理系统中非常重要的一部分,下面是一个示例代码,可以实现将联系人信息保存到指定的文件中。
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_CONTACTS 1000 // 最大联系人数目
// 联系人结构体
typedef struct {
char name[20];
char phone[20];
char address[50];
} Contact;
Contact contacts[MAX_CONTACTS]; // 联系人数组
int num_contacts = 0; // 当前联系人数目
// 保存联系人信息到文件
void save_contact() {
FILE *fp;
int i;
// 打开文件,如果文件不存在则创建
if ((fp = fopen("contacts.dat", "wb")) == NULL) {
printf("Error: Cannot open file!\n");
exit(1);
}
// 将联系人数组写入文件
fwrite(&num_contacts, sizeof(int), 1, fp); // 先写入联系人数目
for (i = 0; i < num_contacts; i++) {
fwrite(&contacts[i], sizeof(Contact), 1, fp); // 逐个写入联系人信息
}
// 关闭文件
fclose(fp);
printf("Contacts saved to file successfully!\n");
}
```
在上面的代码中,我们首先定义了一个联系人结构体,包括姓名、电话、地址等三个字段。然后定义了一个联系人数组和当前联系人数目,用于存储所有联系人的信息。最后,定义了一个保存联系人信息的函数`save_contact()`,该函数将联系人数组中的所有联系人信息写入指定的文件中。
函数中首先打开文件,如果文件不存在则创建文件。然后将联系人数组中的所有联系人信息写入文件中,先写入联系人数目,然后逐个写入联系人信息。最后关闭文件,并输出保存成功的提示信息。
需要注意的是,在写入文件之前,我们需要先判断文件是否成功打开,如果无法打开文件,则需要输出错误提示并退出程序。另外,我们还需要考虑到文件格式的兼容性问题,可以使用二进制文件进行存储,以便在不同平台上都能够正常读取。
阅读全文