2017-8-13 文件
复习完成时间:2017-8-13 晚12点
学习内容:
1、文件:
分类:普通文件、特殊文件(像设备文件,各种硬件设备均可视为文件,操作无非读和写)
按编码分:二进制码文件、ASCII码文件(文本文件,存储形式与显示相同,读写费时,占空间大)
2、文件打开与关闭
打开:FILE *fp;//定义一个指向文件的指针
fp=fopen(“c:\\abc.txt”,”r”);//”\\”第一个为表转义,第二个表根目录;
r:读; w:写,存在同名则删除新建,无也新建; a:追加 +:读和写
3、文件读写
(1)字符读写: ch=fgetc(fp);
fputc(ch,fp);
(2)字符串读写: fgets(str,11,fp);//从fp所指文件中读出11-1=10个字符到数组str;
fputs(str,fp);
(3)数据块读写: fread(str,4,5,fp);//从fp所指文件中每次读4字节,送入数组str中,//连续读5次
(4)格式化读写: fscanf(fp,”%d %s”,&i,s);
fprintf(fp,”%d%s”,i,s);
4、文件定位: rewind(fp);//把文件内部指针移到文件首;
fseek(fp,100L,0);//把位置指针移到离文件首100个字节处
文件首:SEEK_SET:0 当前位置:SEEK_CUR:1 文件尾:SEEK_END:2
ftell(fp);//获取当前文件指针离文件开头的字节数
5、文件状态: feof(fp);//若到文件尾,函数值为真;
ferror(fp);//出错值为真;
clearer(fp);//使ferror()和feof()函数值置0;
6、其它:
EOF:文件结束符,通常为-1;
fflush(fp);//清除读写缓存区;
7、数组、链表、结构体、指针之间关系:
数组:同一数据类型的数据集合;可采用指针访问和传参;
优点:连续内存块,方便访问;
缺点:内存空间固定,扩容、插入。删除麻烦;
链表:每个节点是结构体;功能和数组类似;
优点:动态分配,扩容、插入、删除数据方便;
缺点:过量使用会导致内存碎片化;不便于访问使用;
结构体:某一类数据的集合;减少数组的定义数量;
指针:可访问内存,可访问和传递任意类型数据;
心得体会:回来就好好学,不要浪费了。