导图社区 文件
包含文件的分类、文件指针、打开与关闭文件、顺序读写数据文件、向文件读写一个字符串、用格式化的方式读写文本文件等。
社区模板帮助中心,点此进入>>
论语孔子简单思维导图
《傅雷家书》思维导图
《童年》读书笔记
《茶馆》思维导图
《朝花夕拾》篇目思维导图
《昆虫记》思维导图
《安徒生童话》思维导图
《鲁滨逊漂流记》读书笔记
《这样读书就够了》读书笔记
妈妈必读:一张0-1岁孩子认知发展的精确时间表
文件
文件的分类
ASCII文件(文本文件)
字符一律以ASCII形式存储
占用存储空间较多,花费转换时间
二进制文件(映像文件)
数值型数据既可以用ASCII形式,也可以用二进制形式
节省空间和转换时间
文件指针
每个被使用的文件都在内存中开辟一个相应的文件信息区,用来保存文件的有关信息(文件名、文件状态、文件位置等)
信息是保存在一个文件结构体变量中,该结构体为FILE类型
注意:文件指针变量并不是指向外部介质上的数据文件的开头,而是指向内存中的文件信息区的开头
打开与关闭文件
用fopen函数
一般形式:fopen(文件名, 使用文件方式);
返回值为指向文件的指针,如打开失败,则返回NULL
FILE *fp; fp = fopen("note","r");
使用文件方式
带b与不带b的区别,即对换行的处理
用fclose函数
一般形式:fclose(文件指针);
成功执行操作,返回0,否则返回EOF(-1)
顺序读写数据文件
fgetc(fp)
从fp指向的文件中读取一个字符
读成功,带回所读字符,失败则返回文件结束标志EOF(即-1)
fputc(ch,fp)
把字符ch写到文件指针变量fp所指向的文件中
写入成功,返回值就是写入的字符;写入失败,则返回EOF
feof(File *)
检测文件尾标志是否已被读取过
文件已结束,返回值为真(以1表示),否则返回假(以0表示)
EOF文件尾标志
在stdio.h中定义,值为-1
向文件读写一个字符串
fgets( str,n,fp )
一般形式:char * fgets(char *str, int n, FILE *fp)
功能:从fp指向的文件中读取一个长度为(n-1)的字符串,存放到字符数组str中,最后加上'\0'
在读完n-1个字符之前遇到换行符'\n'或文件结束符EOF,读入则结束
读成功,返回地址str,失败则返回NULL
fputs( str, fp )
一般形式:int fputs(char *str, FILE * fp )
功能:把str所指向的字符串写到文件指针变量fp所指向的文件中
str可以是字符串常量,字符指针或字符数组
写入成功,返回0;否则返回非0值
用格式化的方式读写文本文件
fprintf
一般形式:fprintf(文件指针,格式字符串,输出表列)
输出时,将内存中二进制形式转换为字符(ASCII码)
fscanf
一般形式:fscanf(文件指针,格式字符串,输入表列)
输入时,将字符(ASCII码)转换为二进制形式保存到变量中
返回值:是实际读取的数据个数,出错或者到结尾返回EOF。
用二进制方式向文件读写一组数组
fread
一般形式:fread(buffer,size,count,fp);
功能:从fp所指向的文件读入count个size字节的数据,存储到buffer表示的地址中
返回值为形参count的值,即输入或输出数据项的个数
fwrite
一般形式:fwrite(buffer,size,count, fp);
功能:将内存中buffer地址开始count个size字节的数据写入到文件中
读写都是以二进制形式
随机读写数据文件
rewind
一般形式:rewind(FILE * fp)
作用:使文件位置标记重返文件的开头
无返回值
fseek
一般形式:fseek( 文件类型指针,位移量,起始点 )
位移量为long长整型数值
作用:根据文件起始点位置(0代表起点,1代表当前位置,2代表末尾),移动“位移量”个字节位置
ftell
作用:测定文件位置标记的当前位置
返回:相对于文件开头的位移量
如调用函数时出错,则返回-1L
总结
文本读写函数
二进制读写函数