用c语言解决,将磁盘文件存储的十个联系人的姓名,电话号码,保存在一个结构体数组中
时间: 2023-06-20 22:09:18 浏览: 101
数组在函数间的传递-数值型数组
可以使用以下代码实现:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_CONTACTS 10
#define MAX_NAME_LEN 20
#define MAX_PHONE_LEN 15
struct Contact {
char name[MAX_NAME_LEN];
char phone[MAX_PHONE_LEN];
};
int main() {
struct Contact contacts[MAX_CONTACTS];
FILE *fp;
int i;
// 从文件中读取联系人信息并保存到结构体数组中
fp = fopen("contacts.txt", "r");
if (fp == NULL) {
printf("Failed to open file.\n");
exit(1);
}
for (i = 0; i < MAX_CONTACTS; i++) {
if (fscanf(fp, "%s %s", contacts[i].name, contacts[i].phone) != 2) {
break;
}
}
fclose(fp);
// 输出结构体数组中保存的联系人信息
for (i = 0; i < MAX_CONTACTS && contacts[i].name[0] != '\0'; i++) {
printf("Contact %d: %s, %s\n", i+1, contacts[i].name, contacts[i].phone);
}
return 0;
}
```
上述代码首先定义了一个结构体 `Contact`,其中包含两个字符串成员,分别保存联系人的姓名和电话号码。然后定义了一个结构体数组 `contacts`,用于保存最多十个联系人的信息。
接着,程序打开名为 `contacts.txt` 的文件,将其中的联系人信息读取并保存到结构体数组中。如果读取的联系人数量不足十个,则在读取到的最后一个联系人之后的结构体成员中保存了空字符串。
最后,程序输出结构体数组中保存的联系人信息,直到遇到空字符串为止。
阅读全文