要实现文件存储,首先需要了解几个函数
- fopen :FILE *fopen( const char *filename, const char *mode );
作用:fopen函数打开指定的文件文件名。;参数filename字符串表示打开文件的文件名。参数mode字符串表示打开方式;
今天我们用到了两个打开方式: “r+”和“w”
“r+”:打开对阅读和写作。该文件必须存在。(这里也可以用”r”);
“w”:读写打开一个空文件。如果给定的文件存在,它的内容被破坏。 fprintf 和 fscanf
int fprintf( FILE *stream, const char *format [, argument ]…);
int fscanf( FILE *stream, const char *format [, argument ]… );
用法和printf(fscanf)其实相同,只是前面加了一个文件结构体指针stream,把在在键盘上读换成文件中读,把往屏幕上写换成往文件中写。介绍完我们使用的函数,先介绍下我的思想:
代码有三个文件项组成:
adder.h
adder.c
test.c
//adder.h 这里面就是定义了一些常量,和函数
#ifndef __ADDER_H__
#define __ADDER_H__
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<malloc.h>
#define MAX_CON 2
#define MAX_name 20
#define MAX_sex 7
#define MAX_tele 15
#define MAX_add 20
typedef struct Contacts
{
char name[MAX_name];
char sex[MAX_sex];
int age;
char tele[MAX_tele];
char add[MAX_add];
}Contacts;
typedef struct Pcon
{
int MAX_data;
int sz;
Contacts *adder;
}Pcon;
void read_exe(Pcon *Pconer);//读取文件中数据
void Add_contact(Pcon* pconer);//增添联系人
void Del_contact(Pcon* pconer);//删除联系人
void Find_contact(Pcon* pconer);//查找联系人
void Mod_contact(Pcon* pconer);//删除联系人
void Acc_contact(Pcon* pconer);//修改联系人
void Remov_contact(Pcon* pconer);//清除通讯录
void Sort_contact(Pcon* pconer);//按姓名排序通讯录
void write_exe(Pcon *Pconer);//退出程序前写入文件中
#endif //__ADDRE_H__
//test.c
#include "adder