编程实现通讯录信息的保存和输出

本文介绍如何使用C语言编程实现通讯录信息的保存到磁盘文件,并在录入后显示所有信息。
摘要由CSDN通过智能技术生成

前言

编程实现将录入的通讯录信息保存到磁盘文件中,在录入完信息后,将录入的信息全部显示出来

一、代码实现

#include <stdio.h>
#include<process.h>
struct address_list											/*定义结构体存储学生信息*/
{
    char name[10];
    char adr[20];
    char tel[15];
} info[100];
void save(char *name, int n)									/*自定义函数save*/
{
    FILE *fp;										/*定义一个指向FILE类型结构体的指针变量*/
    int i;
    if ((fp = fopen(name, "wb")) == NULL)						/*以只写方式打开指定文件*/
    {
        printf("cannot open file\n");
        exit(0);
    }
    for (i = 0; i < n; i++)
        if (fwrite(&info[i], sizeof(struct address_list), 1, fp) != 1)		/*将一组数据输出到fp所指的文件中*/
            printf("file write error\n");							/*如果写入文件不成功,则输出错误*/
    fclose(fp);												/*关闭文件*/
}
void show(char *name, int n)							/*自定义函数show*/
{
    int i;
    FILE *fp;										/*定义一个指向FILE类型结构体的指针变量*/
    if ((fp = fopen(name, "rb")) == NULL)					/*以只读方式打开指定文件*/
    {
        printf("cannot open file\n");
        exit(0);
    } 
    for (i = 0; i < n; i++)
    {
        fread(&info[i], sizeof(struct address_list), 1, fp);	/*从fp所指向的文件读入数据存到数组score中*/
        printf("%15s%20s%20s\n", info[i].name, info[i].adr,info[i].tel);
    }
    fclose(fp);										/*以只写方式打开指定文件*/
}
main()
{
    int i, n;									/*变量类型为基本整型*/
    char filename[50];							/*数组为字符型*/
    printf("how many ?\n");
    scanf("%d", &n);								/*输入学生数*/
    printf("please input filename:\n");
    scanf("%s", filename);							/*输入文件所在路径及名称*/
    printf("please input name,address,telephone:\n");
    for (i = 0; i < n; i++)							/*输入学生成绩信息*/
    {
        printf("NO%d", i + 1);
        scanf("%s%s%s", info[i].name, info[i].adr, info[i].tel);
        save(filename, n);							/*调用函数save*/
    }
    show(filename, n);							/*调用函数show*/
}

测试:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dlz0836

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值