c语言通讯录管理系统存入文件
时间: 2023-12-18 14:03:45 浏览: 88
大学 C语言课程设计:通讯录管理系统
可以使用文件操作函数来实现通讯录管理系统的存储功能。下面是一个简单的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_NAME_LEN 20
#define MAX_PHONE_LEN 20
#define MAX_EMAIL_LEN 30
#define MAX_RECORDS 100
typedef struct {
char name[MAX_NAME_LEN];
char phone[MAX_PHONE_LEN];
char email[MAX_EMAIL_LEN];
} Contact;
void save_contacts(Contact contacts[], int num_contacts, const char* filename) {
FILE* fp = fopen(filename, "wb");
if (fp == NULL) {
printf("Failed to open file for writing.\n");
return;
}
fwrite(&num_contacts, sizeof(int), 1, fp);
for (int i = 0; i < num_contacts; i++) {
fwrite(&contacts[i], sizeof(Contact), 1, fp);
}
fclose(fp);
}
int load_contacts(Contact contacts[]) {
FILE* fp = fopen("contacts.dat", "rb");
if (fp == NULL) {
printf("Failed to open file for reading.\n");
return 0;
}
int num_contacts;
fread(&num_contacts, sizeof(int), 1, fp);
for (int i = 0; i < num_contacts; i++) {
fread(&contacts[i], sizeof(Contact), 1, fp);
}
fclose(fp);
return num_contacts;
}
int main() {
Contact contacts[MAX_RECORDS];
int num_contacts = 0;
// Add some contacts
strcpy(contacts[num_contacts].name, "Alice");
strcpy(contacts[num_contacts].phone, "123456789");
strcpy(contacts[num_contacts].email, "alice@example.com");
num_contacts++;
strcpy(contacts[num_contacts].name, "Bob");
strcpy(contacts[num_contacts].phone, "987654321");
strcpy(contacts[num_contacts].email, "bob@example.com");
num_contacts++;
// Save the contacts to file
save_contacts(contacts, num_contacts, "contacts.dat");
// Load the contacts from file
int num_contacts_loaded = load_contacts(contacts);
// Print the contacts
for (int i = 0; i < num_contacts_loaded; i++) {
printf("%s\t%s\t%s\n", contacts[i].name, contacts[i].phone, contacts[i].email);
}
return 0;
}
```
在这个示例中,我们定义了一个 Contact 结构体来存储每个联系人的姓名、电话和电子邮件地址。我们使用 save_contacts 函数将联系人列表保存到一个二进制文件中,使用 load_contacts 函数从文件中读取联系人列表。注意,我们在文件中首先保存联系人的数量,以便在读取时知道要读取多少个联系人。保存和读取都使用了 fwrite 和 fread 函数,它们可以将内存中的数据写入文件或从文件中读取数据。
在 main 函数中,我们首先添加了一些联系人,然后将它们保存到文件中。接着,我们从文件中读取联系人列表,并打印出每个联系人的姓名、电话和电子邮件地址。
阅读全文