T通过代码创建、读取文件
来源:互联网 发布:淘宝会员有什么用 编辑:程序博客网 时间:2024/06/06 09:16
1.创建文件并写入信息
FILE * fp = NULL;fopen_s(&fp,"name.txt", "w"); int n = 123456;fwrite(&n, sizeof(int), 1, fp); //将联系人个数保存到磁盘fclose(fp);
fopen函数是打开文件的函数,第一个参数是文件地址的地址,第二个参数是保存的文件名,第三个参数是对文件的操作类型(w代表写入,r代表读取,a代表在文件末尾添加)
fwrite函数是以二进制形式对文件进行操作的输入函数,第一个参数问要写入的变量,第二个参数是写入变量的大小,第三个参数是复写次数,第四个变量为文件地址;
注:1.操作类型为w时,如果没有该文件名的文件,则自动创建;如果有,则会清空文件中的内容,等待重新写入
2.打开文件后一定要用fclose函数来关闭文件。
2.读取文件信息
FILE * fp = NULL;fopen_s(&fp, per, "r");
int n; fread(&n, sizeof(int), 1, fp); //读取信息
printf("%d",n); //将读取的信息输出到控制台fclose(fp);
3.在文件末尾添加信息
FILE * fp = NULL;fopen_s(&fp,"name.txt", "a"); int n = 999;fwrite(&n, sizeof(int), 1, fp); //将联系人个数保存到磁盘fclose(fp);
// p0515.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include#define per "persons" //宏定义一个文件名#include bool menu();void add();void show();void init();void save();void remove();void alter();void find();struct Penson{char name[100];char phone[100];}; //保存联系人输入格式的结构Penson penson[1000]; //保存联系人的数组int n=0; //当前联系人个数int main(){init();while (true) {if (!menu()) {return 0; }} return 0;}bool menu() {printf("1、添加一个联系人\n");printf("2、删除一个联系人\n");printf("3、修改一个联系人\n");printf("4、查找一个联系人\n");printf("5、显示全部联系人\n");printf("6、退出\n");printf("请输入你要操作的功能编号:");char ca[100];scanf_s("%s", ca, 100);switch (ca[0]){case '1': add();break;case '2':remove();break;case '3': alter();break;case '4':find();break;case '5':show();break;case '6':return false;break;default:printf("输入有误");break;}return true;}//添加联系人void add(){char temp[100];printf("请输入新建联系人姓名:");scanf_s("%s", temp, 100); //输入联系人姓名strcpy_s(penson[n].name, temp);printf("请输入新建联系人电话:");scanf_s("%s", temp, 100); //输入联系人电话strcpy_s(penson[n].phone, temp);n++; //联系人个数加1save();}//保存到磁盘void save() {FILE * fp = NULL;fopen_s(&fp, per, "w");fwrite(&n, sizeof(int), 1, fp); //将联系人个数保存到磁盘for (int i = 0; i < n; i++) {fwrite(&penson[i], sizeof(Penson), 1, fp); //将联系人信息保存到磁盘}fclose(fp);}//显示所有联系人void show() {if (n < 1) {//n小于1时显示没有联系人printf("当前还没有联系人");}printf("编号\t\t姓名\t\t电话\n");for (int i = 0; i < n; i++) { //遍历联系人数组,并输出printf("%d\t\t%s\t\t%s\n",i+1,penson[i].name,penson[i].phone);}}//初始化文件void init() {FILE * fp = NULL;fopen_s(&fp, per, "r");if (fp != NULL) {fread(&n, sizeof(int), 1, fp); //将联系人个数读到内存中for (int i = 0; i < n; i++) {fread(&penson[i], sizeof(penson), 1, fp); //将联系人读到内存中}}else{return;}fclose(fp);}//删除联系人void remove() {if (n > 0) {show();printf("请输入你想删除的联系人编号(1-%d):", n);char num[4];int nu = atoi(num);scanf_s("%d", &nu);if (nu > 0&&nu<=n) {for (int i = nu - 1; i < n; i++) {penson[i] = penson[i + 1];}penson[n - 1] = { "" };n--;save();}else{printf("输入有误\n");}}else{printf("电话本中还没有联系人\n");}}//修改联系人void alter() {printf("请输入你想修改的联系人编号:");int num;scanf_s("%d", &num);char tem[100];printf("请输入联系人姓名:");scanf_s("%s", &tem,100);strcpy_s(penson[num-1].name, tem);printf("请输入联系人电话:");scanf_s("%s", &tem,100);strcpy_s(penson[num-1].phone, tem);save();}//查找联系人void find() {printf("请输入你想查找的联系人编号:");int num;scanf_s("%d", &num);printf("姓名:%s,电话:%s\n", penson[num - 1].name, penson[num - 1].phone);}
阅读全文
0 0
- T通过代码创建、读取文件
- 通过Dom4J操作(创建、读取和修改)XML文件
- java通过apache poi读取创建excel2003文件
- Android中通过代码读取xml文件中的内容
- java通过InputStream读取和写入文件操作实例代码
- 通过url读取文件
- 通过URL读取文件
- 通过txt读取文件
- T-SQL: 读取磁盘文件
- T-SQL:读取磁盘文件
- 通过代码创建DataTemplate
- 通过代码创建按钮
- 文件创建读取写入
- 通过js创建文件
- JS创建文件,读取文件
- 读取文件的代码
- 读取host文件代码
- 通过JDom读取XML文件
- Partitioner编程
- 操作系统原理与实践”9--终端设备的控制
- Android Home键之后启动Activity延迟5秒
- html5的download
- 让你一看就明白的binder机制
- T通过代码创建、读取文件
- 用VisualGDB在vs2013在linux服务器上编译代码的3073问题
- C语言#与##运算符的使用
- mac上安装jdk
- Spring MVC之@RequestMapping 详解
- 使用 Flume 收集数据
- linux常用命令
- 排序算法关系图
- S5PV210系列(裸机五)之关看门狗、设置栈、开iCache