黑马程序员-C语言-文件
来源:互联网 发布:心酸的句子知乎 编辑:程序博客网 时间:2024/05/04 00:01
——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-
开场白:
对一门变成语言入门,首先要具备4个条件:一个语法,三大类库,怎么讲呢?就是一定要记住所有的语法结构,同时熟练使用字符串、集合、及文件操作三组类库。
字符串是基本信息的载体,无论输入输出都需要,集合是基本数据类型的载体,可以表现很多数据结构,文件操纵是信息持久化的标准,没有文件,就没有信息持久化。
所以文件操作不可不深入理解,熟练掌握。
从用户的角度:基本文件、设备文件
从编码角度:二进制文件、ASCII码文件
对文件的操作步骤:
1、引入头文件
include <stidio.h>
2、定义文件指针
FILE *fp ;
fp是FILE结构的指针变量,通过fp即可找寻存放某个文件信息的结构变量,按照按结构变量提供的信息找到该文件,实施对文件的操作,习惯上也笼统地把fp称为指向某个文件的指针。
3、打开文件
fopen("a.txt","r");
建立指针和文件的各种联系,使文件指针指向该文件。
r:文件必须存在,只读(+可写)
w:只写,如果文件不存在,直接创建一个新的文件(+可读)
a:向已存在的(如果没存在,直接创建)文件追加新的信息
打开文件出错,fopen函数会返回空指针值NULL(+可读)
t:打开一个ASCII码文件
b:打开一个二进制文件
补充:能被记事本正常读取的文件都是ASCII码文件,如果出现一堆乱码,就是二进制文件。
4、文件操作(文件读、写)
int a;fread(&a,sizeof(int),1,fp);//如果读取的是一个整形数据,那就用一个*整形变量*去接受fread(&students[i],sizeof(struct Student),1,fp);//如果是读取的是一个特定结构体数据,就用*一个特定结构体数组元素*去接受,每次读取一个特定结构体类型的字节大小
int a;fwrite("&a",sizeof(int),1,fp);char *str="Hello world!\n";fwrite(str,strlen(str),1,fp);
格式化读写:
fscanf(文件指针,格式字符串,输入列表);fscanf(fp,"%d%s",&i,s);fprintf(文件指针,格式字符串,输出列表);fprintf(fp,"%d%s",j,ch);
5、文件关闭
fclose(文件指针);
避免文件的丢失等错误
自己的一点思考:把数据放到文件中,才能保持数据的持久性,把文件操作分为5个步骤可以更加清晰的操作,其中关闭文件操作容易遗漏,文件打开的方式不同就会产生不一样的结果。
我用Xmind整理的思维导图
——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-
- 【黑马程序员】C语言文件
- 黑马程序员-C语言-文件
- 【黑马程序员】c语言的文件操作
- 黑马程序员--学习C语言文件操作
- 黑马程序员-------C语言----文件读写
- 【黑马程序员】C语言基础-文件管理
- 黑马程序员--C语言入门疑难点----进制,文件
- 黑马程序员-关于C语言多文件联合输出
- 9、黑马程序员-C语言inclue和多文件开发
- 黑马程序员——c语言基础:文件管理
- 黑马程序员-C语言文件操作相关函数
- 黑马程序员-[C语言] 第四篇:文件操作总结
- 黑马程序员——C语言——文件读写
- 黑马程序员--C语言自学笔记---14static、extern、文件
- 黑马程序员------C语言-----初识C语言
- 黑马程序员:c语言--指针
- 黑马程序员-C语言预处理
- 黑马程序员-C语言指针
- Scala快速入门--For循环和函数
- 对SPEA算法的一些总结
- linux下根目录切换隔离chroot工具小结
- 【Linux探索之旅】第四部分第四课:分析网络,隔离防火
- android application
- 黑马程序员-C语言-文件
- Leetcode-52.N-Queens
- 结构体指针 & 结构体嵌套使用...
- 枚举(enum)的使用
- 12306出现了这么多年为何还是如此渣
- juqery中checkbox的click事件
- typedef的使用...typedef int (*Func)(int,int); Func func = sum;
- 预处理...
- Bug:"XXXView" nib but the view outlet was not set