首页
学习
活动
专区
工具
TVP
发布

C语言文件版&动态版通讯录

今天我们再改进一下之前的通讯录,现在可以把通讯录的信息保存在文件当中; 一、测试部分 本次保存和读取通讯录的内容都是以二进制的形式保存和读取; 对于测试部分,改动的地方在于销毁通讯录之前,需要把通讯录的内容保存到文件中...,所以在销毁通讯录的函数前加了一个SaveContact函数保存通讯录;函数的具体实现看函数实现部分; #include "C_File Dynamic Contact.h" void menu...,并实现了; 但是在保存之后的通讯录,我们在下一次打开时,是不是也最好可以把通讯录中的内容读取出来呢,所以我们在初始化通讯录函数中加了这么个函数-LoadContact,加载通讯录的内容,函数的具体实现如下...; #include "C_File Dynamic Contact.h" void CheakCapacity(Contact* pc); //加载文件的信息到通讯录...LoadContact(pc); } //查找函数 //加static修饰这个函数是为了这个函数只能在这个.c文件内用,出了这个文件就用不了 static int FindByName

5910
您找到你想要的搜索结果了吗?
是的
没有找到

C语言通讯录《信息写到文件版本》

文件操作  模块化代码实现  Ⅰ→  test.c Ⅱ→address_book.h Ⅲ→address_book.c ✨最后✨ 概述  这个是在之前的动态版本进行添加,如果你不清楚通讯录的静态或者是动态怎么实现...可以看看博主写的前面两篇通讯录的静态和动态的实现↓ 链接→【C语言通讯录《静态内存版本》_謓泽的博客-CSDN博客 链接→【C语言通讯录《动态内存版本》_謓泽的博客-CSDN博客 ----...如果你不会文件操作的话,可以看看我前面写过的内存的一篇博客来看看⇣ ✨链接→【C语言】内存函数_謓泽的博客-CSDN博客 增添の功能↓ (1)→当通讯录退出的时候,把信息写到文件里面。...---- 模块化代码实现  Ⅰ→  test.c 代码示例如下↓ /* @Note1:当通讯录退出的时候,把信息写道文件。 @Note2:当通讯录初始化的时候,加载文件的信息。...} ✨最后✨ 那么这个就已经实现了通讯录的最终版本了,这个项目适合已经把C语言学完的人做。巩固自己以往的能力,做个这个提升自己逻辑思维和代码能力的一个小的项目

1.2K40

C语言读取文件(二)fscanf 详谈

fscanf 函数用于格式化读入文件中数据,可以大大提高读取文件的效率。这次笔者将最近使用该函数的一些经验记录下来。...如果还没有任何一个域匹配成功或者任何一个匹配失败发生之前,就达到了文件流末尾,就算出错;或者读取文件流出错。这两种情况下,fscanf 返回EOF。...'e'或者'l'这个字符,[0-9]表示只读取0-9这10个数字字符 // %[]之后的域都不起作用了,不会读取文件流。...\n"); } // [^el]表示不读取'e'也不读取'l'这个字符,[^0-9]表示不读取0-9的数字字符 // %[^]之后的域都不起作用了,不会读取文件流。...如果还没有任何一个域匹配成功或者任何一个匹配失败发生之前,就达到了文件流末尾,就算出错;或者读取文件流出错。就这两种情况。

5.5K10

C语言】动态通讯录

今天来改进一下静态版本的通讯录,让通讯录的内存空间可以随大小变化; 一、测试部分 测试部分的改动不大,主要的改动还是在函数实现的部分和声明部分; void menu() { printf...,改用malloc开辟空间 添加联系人的方式,当空间容量不够,使用realloc拓展空间 退出通讯录,需要使用free释放空间以及置空; //动态版本初始化通讯录 void InitContact...); pc->sz = 0; pc->Capacity = DEFAULT_SZ; } //查找函数 //加static修饰这个函数是为了这个函数只能在这个.c文件内用...,出了这个文件就用不了 static int FindByName(Contact* pc, char* name) { int i = 0; for (i = 0; i <...Capacity;//通讯录当前的容量 }Contact; //初始化通讯录 void InitContact(Contact* pc); //打印通讯录

8610

C 语言文件读取全指南:打开、读取、逐行输出

C 语言中的文件读取 要从文件读取,可以使用 r 模式: FILE *fptr; // 以读取模式打开文件 fptr = fopen("filename.txt", "r"); 这将使 filename.txt...在 C读取文件需要一点工作。坚持住!我们将一步一步地指导您。 接下来,我们需要创建一个足够大的字符串来存储文件的内容。...第二个参数指定要读取的最大数据大小,它应该与 myString 的大小 (100) 匹配。 第三个参数需要一个用于读取文件文件指针(示例中的 fptr)。...要读取文件的每一行,您可以使用 while 循环: FILE *fptr; // 以读取模式打开文件 fptr = fopen("filename.txt", "r"); // 存储文件的内容 char...C 语言中的结构体 (structs) 结构体(也称为 structs)是一种将多个相关变量组合到一起的方法。结构体中的每个变量称为结构体的“成员”。

46010

c语言链表数据存入文件读取文件

近快一年没有接触c语言了,今天学妹问我了链表数据存如文件读取文件到链表怎么实现,现在搞开发很少用文件,都是用数据库,在这儿我还是写一下简单的文件读取链表的操作。...在c语言中,创建单链表需要使用到malloc函数动态申请内存;文件的读写需要首先使用fopen函数打开文件,然后使用fscanf,fgetc, fgets,fprintf,fputc,fputs等函数读写函数...下面的源程序展示了关于单链表如何从文件读取数据和往文件里存入数据。...typedef struct node { int data; struct node *next; }node; //从文件读取数据存入链表 node *...p; node *q; p=q=head; FILE * r= fopen("input.txt","r"); if(r==NULL) { printf("打开文件失败

2.4K30

抽丝剥茧C语言(高阶)动态+文件通讯录

动态文件通讯录 导语 动态改进 初始化通讯录与添加联系人的更改 动态通讯录的完全体 动态文件通讯录 完整版代码 导语 这一片博客我会改进上次的静态+文件通讯录,先分析哪里可以改,然后再下手,最后测试。...首先改一下初始化通讯录的函数: contacts.c int initialize(contacts* pc) { assert(pc !...现在我们想办法让这个通讯录读取这些联系人。 打开文件的地方当然要在初始化通讯录的时候读取文件内容。 读取要注意,我们把读取的联系人存在内存时,要先判断能不能放的下,放不下就要增容。...(contacts* pc);//读取文件 contacts.c #include "contacts.h" int find_out(char* p1, contacts* p2) { assert...sizeof(person), 1, p1); } fclose(p1);//关闭文件 p1 = NULL; } test.c #include "contacts.h" enum list {

71000

C语言】静态&动态&文件通讯录(超万字)

✨作者:@平凡的人1 ✨专栏:《C语言从0到1》 ✨一句话:凡是过往,皆为序章 ✨说明: 过去无可挽回, 未来可以改变 ---- 文章目录 前言 准备工作 静态版通讯录 test.c contact.h...contac.c 动态版通讯录 test.c contact.h contact.c 文件通讯录 test.c contact.h contact.c 前言 本篇博客将介绍通讯录,所谓的通讯录就是基于增删查改功能...基于此,博主将通过C语言实现三个版本的通讯录。...---- 准备工作 对于三个版本的通讯录设计布局,都是大同小异: 采用模块化的方式,通讯录分为test.c、contact.c两个源文件和contact.h一个头文件。...我们直接从主函数开始入手,也就是test.c文件开始说起 静态版通讯录 test.c #define _CRT_SECURE_NO_WARNINGS #include "contact.h" /* *

31220

C语言通讯录(静态&动态&文件操作内附源码)

---- 前言 ---- 检验学习成果最好的方式是实践 在学习完C语言的基础知识以后,就可以简易的实现一些小项目 本文章为手把手讲解实现C语言静态通讯录(好好看,相信不会太难的说) 当你自己完成后一定成就感幸福感满满的...问题描述 ---- 用C语言实现简易通讯录 工具 ---- vs2019 基本框架 ---- 通讯录可以用来存储100个人的信息,每个人的信息包括:姓名、性别、年龄、电话、住址 提供方法...test.c:写通讯录的整体流程和逻辑 contact.c:实现通讯录各种功能函数 创建联系人信息与通讯录结构体 对于联系人信息: 需要包含包括姓名、性别、年龄、电话、住址 对于静态通讯录:...,我们如果还想让通讯录能够保存我们所输入联系人数据(在退出后再打开通讯录) 注:这就需要一点文件操作的知识了(在后面的专题中会仔细讲解) 输出数据 在通讯录运行结束前,我们让通讯录联系人的数据以二进制的形式输出到指定的文件中...(即将数据保存在文件中) 参考代码: //保存通讯录数据 void SaveContact(struct Contact* p) { //fopen函数:找到指定文件并返回文件的地址 //wb

87410

通讯录C语言版)(静态通讯录

引言: 1.菜单 通讯录也如同游戏,需要菜单来供使用者选择,因此要用do...while......(第一次看我文章的小伙伴可以看看我这两篇文章啦:1.扫雷游戏(有讲解)-CSDN博客 2.猜数字游戏(C语言实现)-CSDN博客) 2.功能总结 通讯录有很多功能,因此我们在做出它之前总结一下他的功能...: 与游戏一样,通常需要三个文件: 1.contact.h 包含函数的声明和某些重要量的定义,这些量定义在头文件中方便源文件的使用,也方便代码的统一修改,使之灵活(用define来说明,如:扫雷中的行和列...} 这里运用了memset函数,具体函数如图所示: 由图可知,需要包含头文件 , void* dest:要被初始化的地址(通常为数组名); int c:用于初始化的数(该题初始化为0...4.test.c函数的实现 #define _CRT_SECURE_NO_WARNINGS 1 #include "contact.h" /*静态通讯录*/ void menu()

10110

c语言实现通讯录

前言 目录 前言 一、通讯录: 1.1 通讯录介绍: 1.2 通讯录功能介绍: 效果展示: 二、通讯录的实现: 2.1 通讯录类型的声明: 2.2 通讯录的初始化: 2.3 添加联系人函数: 2.4...查询指定联系人函数: 2.5 删除联系人函数 动态图解: 2.6 修改指定联系人函数 总结 总代码: 主测试区: 函数实现区: 函数声明区: 一、通讯录: 1.1 通讯录介绍: 本次通讯录采用...用一个参数 sz 记录当前联系人个数. 1.2 通讯录功能介绍: 1.添加联系人 2.删除联系人 3.修改联系人 4.查询联系人 5.展示通讯录 效果展示: 二、通讯录的实现: 2.1...定义 通讯录 变量: Contact cont;//创建通讯录cont 对 通讯录 进行合理的 初始化 操作....3.能否保存以前的通讯录信息,当我们下次打开通讯录后,通讯录还保存以前的信息. …… 这些优化,会涉及到文件等后需要学习的知识,下回牛牛在细细分解.今天就到这里啦!!

94030

matlab读取mnist数据集(c语言文件读取数据)

注:在 Windows 平台下解压这些文件时,操作系统会自动修改这些文件文件名,比如会将倒数第二个短线-修改为....,也即 train-images-idx3-ubyte.gz 解压为train-images.idx3-ubyte(文件类型就自作主张地变成了idx3-ubyte),注意文件的对应。...数据格式 数据格数如图所示,即在真正的 label 数据或图像像素信息开始之前会有一些表头信息,对于 label 文件是 2 个 32位整型,对于 image 文件是 4 个 32位整型,所以我们需要对这两个文件分别移动文件指针...image数据: 首先读取4个数据,分别是MagicNumber=2051,NumberofImages=6000,rows=28,colums=28,然后每读取rows×colums个数表示一张图片进行保存...image类似,区别在于只有MagicNumber=2049,NumberofImages=6000,然后每行读取的数据范围为0~9,因此令temp+1列为1,其余为0即可。

4.7K20

C语言通讯录实现(下)

1.进阶通讯录特点(下) ①基本的增删查改功能; ②通讯录的空间不固定,大小可以调整; ③通过C语言文件操作来储存通讯录信息到硬盘上; 2.实现步骤 基本实现步骤同上、中两篇 【[C语言]通讯录实现(中...) - CSDN App】http://t.csdnimg.cn/K5tqO 【【C语言通讯录实现(上) - CSDN App】http://t.csdnimg.cn/ZrZQk 此外还有文件加载、写入...//写入一个sz通讯录联系人数量加一和增加联系人函数一样 } printf("已保存的联系人加载成功啦~\n"); return; } 3.完整C语言通讯录代码 (1)contact.h #pragma...//从pc->data+i的位置开始读写到文件中 } //关闭文件 fclose(pf); pf = NULL; } 4.结语 三版通讯录循序渐进,从最开始的定容增删查改等功能的实现(上篇...),到可以不定容的通讯录(中篇),最后到可以保存数据到文件并从文件中加载保存的联系人(下篇),我们不仅学会了一些基本函数的写法,还学了动态内存函数malloc,realloc等函数的用法,并熟悉了c语言文件的基本操作

6110

C语言小程序:通讯录

1.实现功能 本文将采用C语言来实现一个简单的通讯录,要求功能如下 //实现一个通讯录 //1.可以保存100个人的信息 //2.增加人的信息 //3.删除指定联系人的信息 //4.查找 //5.修改...这里我们用一个头文件contact.h来包装我们所需要的头文件以及函数的声明,使代码看上去更加整洁....头文件contact.h #pragma once #define _CRT_SECURE_NO_WARNINGS 1 #include #include #include...功能设计 1.创建一个通讯录并进行初始化 首先我们要明确,一个通讯录里放的应该是什么样的信息,既然是通讯录,肯定得有名字和电话号码,除此之外,也可以有性别,住址或者年龄,为了简单,我们就设计这些元素.我们用一个结构体来存放这些变量...,命名为PeopleInfo类型代表联系人的信息.接下来创建通讯录,通讯录里要有联系人的信息,同时还得记录通讯录里人的个数,这里我们也可以用一个结构体Contact来存放它们. typedef struct

9110
领券