C语言——文件

A1.文件

  • 文件一般是指存储在外部介质上数据的集合
  • 操作系统以文件为单位对数据进行管理的
  • 输入输出是数据传送的过程,数据如流水一样,输入输出流
  • 数据的组织形式和数据文件分为ASCII文件和二级制文件
    • 把内存中的数据按其在内存中的存储形式原样输出磁盘上存放

A2.文件类型指针

  • 不同的c编译系统的FILE类型包含的内容不完全相同,但大同小异
  • 在缓冲文件系统职工,每个被使用的文件都要在内存中开辟——FILE类型的区用于存放文件的有关信息
  • 文件型指针变量
    • FILE *fp;
  • fp是一个指向FILE类型结构体的指针变量,使fp指向某一个文件的结构体变量,从而通过该结构体变量文件信息访问该文件

A3.文件的打开与关闭

  • 打开函数调用:
    • FILE *fp;
    • fp=fopen(文件名,使用文件方式);
  • 关闭函数调用;
    • flose(文件指针);
    • 函数功能;
      • 使文件指针变量不指向该文件,文件指针变量与文件“脱钩”,后不再通过该指针对原来与其联系的文件进行读写操作
    • 返回值;
      • 关闭成功返回值0;否则返回EOF(-1)

A4.字符读写函数:fgetc()和fputc()

  • fputc函数向文件写入一个字符
  • 调用形式:fputc(ch,fp);
  • 函数功能
    • 将字符(ch的值)输入到fp所指向的文件中
  • 返回值
    • 输入成功,则返回值是输出的字符
    • 输入失败,则返回一个EOF
  • fgetc函数从文件读入一个字符
  • 调用形式:ch=fgetc(fp);
  • 函数功能
    • fgetc函数带回一个字符,赋给ch
  • 返回值
    • 在执行fgetc函数读字符时遇到文件结束符,函数返回文件解释标志EOF

A5.字符串读写函数;fgets()和fputs()

  • fgets函数
  • char *fgets(char *str,int n,FILE *fp)
  • 函数功能
    • 从指定的文件读入一个字符
  • 返回值
    • 执行fgets函数成功,返回为str数组首元素的地址
    • 一开始遇到文件尾或读数据出错,返回NULL
  • fputs函数
  • int fputs(const str,FILE *fp)
  • 函数功能
    • fputs函数可以向指定的文件输出一个字符串

A6.格式化读写函数:fscanf()和fprintf()

  • 函数调用:
    • fprintf(文件指针,格式字符串,输出表列)
    • fscanf(文件指针,格式字符串,输入表列)
  • 函数功能
    • 从磁盘文件中读入或输出字符

A7.数据块读写函数

  • 数据块读写函数用二进制方式读写文件
  • 函数调用:
    • fread(buffer,size,count,fp)
    • fwrite(buffer,size,count,fp)
  • 参数说明
  • buffer:指针
    • 对fread来说,是读入数据的存放地址
    • 对fwrite来说,是要输出数据的地址(均指起始地址)
    • size:要读写的字节数
    • count:要进行读写多少size字节的数据项
    • fp:文件型指针
  • 注意
    • 用fprintf和fscanf函数对磁盘文件读写,由于输入时要将ASCII码转换成二进制形式,输出时又要将二进制形式转换成字符,内存和磁盘频繁交换数据情况下,建议用fread和fwrite函数

A8.文件定位

  • 位置指针用来指示当前的读写位置
  • 在对字符文件进行顺序读写时,文件的位置指针指向文件开头,如果需要对文件进行读的操作就读第一个字符,文件位置指针顺序向后移以为,在下次执行读的操作,就将指针指向第二个字符读入
  • 想在一个文件的原有数据之后添加新数据,把文件位置指针移到文件尾,再写入数据,则为文件的追加

A9.位置指针定位函数:fssk

  • 函数功能:
    • 改变文件的位置指针
  • 函数调用形式
    • fssk(文件类型指针,位移量,起始点)
  • 起始点
    • 文件开头 SEEK_SET 0
    • 文件当前位置 SEEK_CUR 1
    • 文件末尾 SEEK_END 2
  • 位移量
    • 以起始点为基点,向前移动的字节数。一般要求long型

A10.求位置指针偏移值函数:ftell()

  • 函数功能
    • 得到流式文件中的当前位置,用相对文件的位移量来表示
  • 返回值
    • 返回当前位置,出错时返回-1L

A11.位置指针复位函数:rewind()

  • 函数功能
    • 使位置指针重新返回文件的开头,此函数没有返回值

A12.出错检查

  1. ferror函数
  • 调用形式
    • ferror(fp)
  • 返回值
    • 返回0,未出错
    • 返回非0,出错
    • 调用一个输入输出函数后立即检查ferror函数的值,否则信息丢失。执行fopen函数时,ferror函数初始值自动置0
  1. clearerr函数
  • 调用形式
    • cleareer(fp)
  • 函数作用
    • 使文件错误标志和文件解释表示置为0
  • 只要出现错误标志,就一直保留,直到对同一文件调用clearerr函数或rewind函数,或其他一个输出输入函数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值