使用c语言编写一个通讯录管理系统,要求用文件保存
时间: 2024-05-04 22:18:53 浏览: 115
C语言—个人通讯录管理系统.zip
5星 · 资源好评率100%
好的,我可以为您提供一个基本的通讯录管理系统的代码示例,使用C语言编写,并将数据保存到文件中。
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_CONTACTS 100
#define MAX_NAME_LEN 50
#define MAX_PHONE_LEN 20
typedef struct contact {
char name[MAX_NAME_LEN];
char phone[MAX_PHONE_LEN];
} Contact;
int num_contacts = 0;
Contact contacts[MAX_CONTACTS];
void add_contact() {
if (num_contacts == MAX_CONTACTS) {
printf("Cannot add more contacts.\n");
return;
}
printf("Enter name: ");
scanf("%s", contacts[num_contacts].name);
printf("Enter phone number: ");
scanf("%s", contacts[num_contacts].phone);
num_contacts++;
}
void list_contacts() {
printf("Contacts:\n");
for (int i = 0; i < num_contacts; i++) {
printf("%s: %s\n", contacts[i].name, contacts[i].phone);
}
}
void save_contacts() {
FILE *fp;
fp = fopen("contacts.txt", "w");
if (fp == NULL) {
printf("Error opening file.\n");
return;
}
for (int i = 0; i < num_contacts; i++) {
fprintf(fp, "%s|%s\n", contacts[i].name, contacts[i].phone);
}
fclose(fp);
printf("Contacts saved to file.\n");
}
void load_contacts() {
FILE *fp;
fp = fopen("contacts.txt", "r");
if (fp == NULL) {
printf("Error opening file.\n");
return;
}
char line[MAX_NAME_LEN + MAX_PHONE_LEN + 2];
while (fgets(line, sizeof(line), fp)) {
char *name = strtok(line, "|");
char *phone = strtok(NULL, "\n");
strcpy(contacts[num_contacts].name, name);
strcpy(contacts[num_contacts].phone, phone);
num_contacts++;
}
fclose(fp);
printf("Contacts loaded from file.\n");
}
int main() {
int choice;
load_contacts();
do {
printf("\n");
printf("1. Add contact\n");
printf("2. List contacts\n");
printf("3. Save contacts to file\n");
printf("4. Exit\n");
printf("Enter choice: ");
scanf("%d", &choice);
switch (choice) {
case 1:
add_contact();
break;
case 2:
list_contacts();
break;
case 3:
save_contacts();
break;
case 4:
printf("Exiting...\n");
break;
default:
printf("Invalid choice.\n");
}
} while (choice != 4);
return 0;
}
```
该程序使用一个结构体`Contact`来表示每个联系人的姓名和电话号码。程序中定义了一个全局变量`num_contacts`来记录当前联系人的数量,以及一个数组`contacts`来存储所有联系人的信息。
程序提供了四个选项:添加联系人、列出所有联系人、将联系人信息保存到文件中、退出程序。在添加联系人时,程序会要求用户输入姓名和电话号码,并将这些信息添加到`contacts`数组中。在列出所有联系人时,程序会遍历`contacts`数组,并打印出每个联系人的姓名和电话号码。在将联系人信息保存到文件中时,程序会将`contacts`数组中的所有联系人信息写入到一个名为`contacts.txt`的文件中,每一行表示一个联系人,姓名和电话号码之间用竖线分隔。在退出程序时,程序会自动保存联系人信息到文件中。
您可以根据项目需求进行修改和扩展。
阅读全文