C语言的文件操作

“文件”是指存储在计算机外部存储器中的数据的集合。计
 算机根据⽂文件的名字,完成对⽂文件的操作
C语⾔言将⽂文件看作是字符构成的序列,即字符流。其基本 的存储单位是字节。
⽂文件的读写操作函数,它们都在头⽂文 件stdio.h定义的:
• 按字符读写的函数fgetc()、fputc()
• 按字符串读写的函数fgets()、fputs()
• 按格式要求读写的函数fprintf()、fscanf()
• 按数据块读写的函数fread()、fwrite()


文件指针变量=fopen(⽂件名,处理文件方式);
文件不存在等原因造成不能打开⽂ 件,则调⽤fopen()后将返回一个空指针 NULL。


fputc(字符,⽂文件型指针变量)
• fp为一个文件类型指针变量,上式将字符常 量’A’(也可以是字符型变量)写⼊文件当前位 置,并且使⽂件位置指针下移一个字节。如果 写入操作成功,返回值是该字符,否则返回 EOF。




fgetc()函数
fgetc(⽂件型指针变量)
返回文件当前位置的字符,并且使⽂件位置指针下移一个字符。如果遇到文件结束, 则返回值为文件结束标志EOF。


fputs(字符串,⽂件型指针变量)
写⼊文件成功,函数 返回值为0,否则为EOF。


fgets(字符数组,字符数,⽂件型指针变量)
其作⽤是从fp指向的⽂件的当前位置开始读取 n-1个字符,并加上字符串结束标志’\0’一起放入字符数组str中。如果从文件读取字符时遇 到换行符或文件结束标志EOF,读取结束。 函数返回值为字符数组str的⾸地址。


fprintf(文件型指针变量, 格式控制, 输出表列)
它的作⽤是将变量num、name、score按照%ld、 %s、%5.1f的格式写⼊入fp指向的文件的当前位置


fscanf(⽂件型指针变量, 格式控制,输入表列);
 它的作⽤是从fp指向的文件的当前位置开始,按
照%ld、%s、%5.1f的格式取出数据,赋给变量
num、name和score。


按数据块读写的函数fread()、fwrite()


fwrite(写⼊文件的数据块的存放地址,一个数据块的字节数,数据块的个数,⽂件型指针变量);
例如:已知struct student 类型的数组stu[20],则fwrite(&stu[1], sizeof(struct student ), 2, fp);
如果成功返回写入的数据块的数量 2


 fread()函数
函数fread()的作⽤用是从⽂件中读出成批的数据块
fread(从文件读取的数据块的存放地址,⼀个数据块的字节数,数据块的个数,文件型指针变量);


已知stu1是⼀一个结构体struct student变量,则
fread(&stu1, sizeof(struct student ), 1, fp);
• 从⽂件类型指针fp指向的文件的当前位置开始,读取1个数据块,该数据块为结构体struct student类型变量所占字节数,然后将读取的内容放入变量stu1中。
• 注意:fwrite()和fread()函数读写文件时,只有使⽤二 进制方式,才可以读写任何类型的数据。最常⽤于读写数组和结构体类型数据


文件在使用时,指向打开的文件的指针 可以指⽰文件的当前位置,当每次读 取或写入数据时,是从文件指针的当 前位置开始读取或写入数据的,然后 指针自动移到读写下⼀个数据的位 置。所以文件指针的定位非常重要。
在C语言的stdio.h头文件中定义的一 些文件操作中常用的库函数。
函数feof()、rewind()、fseek()、 ftell()


feof(文件型指针变量);
如果文件型指针指向的文件的当前位置为结束标志EOF,则函数返回 一个⾮非零值,否则返回0值。


函数rewind()将令指向文件的指针 重新指向文件的开始位置。函数无 返回值。其调⽤形式为:
rewind(⽂件型指针变量);
fseek(⽂件型指针变量,偏移量,起始位置);



函数fseek()
函数fseek()可以将使得指向⽂件的指针变量 指向⽂件的任何一个位置,实现随机读写文件。它调用的形式为:
fseek(⽂文件型指针变量,偏移量,起始位 置);
函数fseek()将以文件的起始位置为基准,根据偏移量往前或往后移动指针。其中偏移量 是⼀个长整型数,表示从起始位置移动的字节数,正数表示指针往后移、负数表示指针往前移。起始位置用数字0、1、2或者用名字SEEK_SET、SEEK_CUR、SEEK_END 代表⽂文件开始、文件当前位置和文件结束位 置。如果指针设置成功,返回值为0,否则 为非0值。


函数ftell()
函数ftell()用于测试指向⽂件的指针的当前位置。它的调⽤方式为:
ftell(文件型指针变量);
函数的返回值是⼀个常整型数,如果 测试成功,则返回指向文件的指针当 前指向的位置距离⽂件开头的字节 数,否则返回-1L
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值