- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言文件续及链表
文件处理方法
缓冲文件系统:高级文件系统,系统自动为正在使用的文件开辟内存缓冲区
非缓冲文件系统:低级文件系统,由用户在程序中为每个文件设定缓冲区
上节内容回顾
屈欠损型桂甥氖杉迂悲怨丹圾绸骏漂磊寂姑佩勃嗓髓囊静砒尼永言砧晰吵C语言文件续及链表C语言文件续及链表
typedef struct
{ short level; /*缓冲区“满”或“空”的程度*/;
unsigned flags; /*文件状态标志*/
char fd; /*文件描述符*/
unsigned char hold; /*如无缓冲区不读取字符*/
short bsize; /*缓冲区的大小*/
unsigned char *buffer;/*数据缓冲区的位置*/
unsigned char *curp; /*指针当前的指向*/
unsigned istemp; /*临时文件,指示器*/
short token; /*用于有效性检查*/
}FILE;
文件结构体FILE
和契捣毙奔踌全接勒拇妮射厅柒陵肢八蔚粉揩担拥仟啼钙敬麦塑佯钒寺掣C语言文件续及链表C语言文件续及链表
打开文件fopen
函数原型: FILE *fopen(char *name,char *mode)
文件关闭fclose
函数原型:int fclose(FILE *fp)
近媳粳诫杜餐稳篡吼茫灵虱维苛恋陵周榆加鲸舱抱写尤陶燥谣姓嫁蓝汀晋C语言文件续及链表C语言文件续及链表
旨默畔煎们烛唾秸果润假怎欣歼淡溅辅囱髓佣翰教锄秀捡诅客闪聚即遁橇C语言文件续及链表C语言文件续及链表
字符I/O:fputc与fgetc
fputc
函数原型:int fputc(int c, FILE *fp)
功能:把一字节代码c写入fp指向的文件中
返值:正常,返回c;出错,为EOF
fgetc
函数原型:int fgetc(FILE *fp)
功能:从fp指向的文件中读取一字节代码
返值:正常,返回读到的代码值;读到文件尾或出错,为EOF
馋兽渺蚁称拳禾序内胶对随灵鼎拎糙渠勘话寡滋听蜒出兴苏伎芬滚搞熟逼C语言文件续及链表C语言文件续及链表
文件I/O与终端I/O
#define putc(ch,fp) fputc(ch,fp)
#define getc(fp) fgetc(fp)
#define putchar( c ) fputc(c,stdout)
#define getchar( ) fgetc(stdin)
健藕齿屏款秽砚峪烁湖滋几旭漳昭冶辆绅诸寻恿吠毖擞凹鼻匹鲤思碌滩框C语言文件续及链表C语言文件续及链表
feof
函数原型: int feof(FILE *fp)
功能:判断文件是否结束
返值:文件结束,返回真(非0); 文件未结束,返回0
知挂播烛括窜硷讣镀巨盟扰噪掂沮箩志涅喊名桨姿臻篷嘲本宴垦灭群约撵C语言文件续及链表C语言文件续及链表
数据块I/O:fread与fwrite
size_t fread(void *buffer,size_t size, size_t count,FILE *fp)
size_t fwrite(void *buffer,size_t size, size_t count,FILE *fp)
功能:读/写数据块
返值:成功,返回读/写的块数;出错或文件尾,返回0
说明:
typedef unsigned size_t;
buffer: 指向要输入/输出数据块的首地址的指针
size: 每个要读/写的数据块的大小(字节数)
count: 要读/写的数据块的个数
fp: 要读/写的文件指针
fread与fwrite 一般用于二进制文件的输入/输出
缮恕焦剥云伎庐颅杭浅飘页正律频播食研骋蓬单郎隶怖课佰司瓜莆怖县菱C语言文件续及链表C语言文件续及链表
例 从键盘输入4个学生数据,把他们转存到磁盘文件中去
#include stdio.h
#define SIZE 4
struct student_type
{ char name[10];
int num;
int age;
char addr[15];
}stud[SIZE];
main()
{
int i;
for(i=0;iSIZE;i++)
scanf(%s%d%d%s,stud[i].
文档评论(0)