既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
//初始化
void InitContact(struct Contact* pc)
{
assert(pc);
//先为通讯录初始化INIT_MIN个元素
struct PeoInfo* tmp = (struct PeoInfo*)malloc(sizeof(struct PeoInfo) * INIT_MIN);
if (tmp == NULL)
{
printf("动态开辟失败\n");
return;
}
else
{
pc->data = tmp;
pc->size = 0; //最初通讯录为空
pc->capacity = INIT_MIN;
}
//加载信息到通讯录中
LoadContact(pc);
}
加载代码:
void LoadContact(struct Contact* pc)
{
//打开文件
FILE* pf = fopen("Contact.txt", "rb");
if (NULL == pf)
{
perror("fopen");
return -1;
}
//读文件
struct PeoInfo tmp = { 0 };
while (fread(&tmp, sizeof(struct PeoInfo), 1, pf))
{
//检查空间,不够则增容
CheckCapacity(pc);
pc->data[pc->size] = tmp;
pc->size++;
}
//关闭文件
fclose(pf);
pf = NULL;
}
五.源码
文件名 | 功能 |
Contact.c | 通讯录函数接口的实现 |
Contact.h | 宏定义,头文件,接口函数的声明 |
test.c | 函数接口测试 |
Contact.c
#define _CRT_SECURE_NO_WARNINGS 1
#pragma once
#include"Contact.h"
//初始化
void InitContact(struct Contact* pc)
{