C语言 文件操作

54.文件

①从用户角度来看,文件可分为普通文件和设备文件两种。

    1)普通文件是指驻留在磁盘或其他外部介质上的一个有序数据集,可以是源文件、目标文件、可执行程序;也可以是一组待输入处理的原始数据,或者是一组输入的结果。

    2)设备文件是指与主机相联的各种外部设备,如显示器、打印机、键盘等。在操作系统中,把外部设备也看作时一个文件来进行管理,把它们的输入、输出等同于堆磁盘文件的读和写。

②从文件编码的方式来看,文件可氛围ascii码文件和二进制文件两种。

    1)ascii文件也称为文本文件,这种文件在磁盘中存放时每个字符对应一个字节,用于存放对应的ascii码。

    2)二进制文件时按二进制的编码方式来存放文件的。

③对文件的操作步骤:

    1)引入头文件(stdio.h)

    2)定义文件指针

    3)打开文件

    4)文件读写

    5)关闭文件

字符读写函数:fgetc和fputc

字符串读写函数:fgets和fputs

数据块读写函数:freed和fwrite

格式化读写函数:fscanf和fprintf

④文件操作的原理:

    1)文件缓冲区

        缓冲文件系统是指系统自动地在内存去为程序中每一个正在使用的文件开辟一个文件缓冲区从内从向磁盘输入数据必须先送到内存中的缓冲区,装满缓冲区后才一起送到磁盘区。


55.C语言文件指针

在C语言中用一个指针变量指向一个文件,这个指针成为文件指针

通过文件指针就可以它所指的文件进行各种操作。

①定义:

    FILE *指针变量标识符    //其中FILE应为大写,它实际上是由系统定义的一个结构,该结构中含有文件名、文件状态和文件当前位置等信息。


56.文件的打开和关闭

①文件的打开(fopen函数)

    fopen函数用来打开一个文件,其调用的一般形式为:

        文件指针变量名 = fopen(文件名,使用文件方式);

如果打开成功,返回文件的首地址,如果打开失败,返回NULL。

    其中:

        ”文件指针名“必须是被说明为FILE类型的指针变量;

        ”文件名“是被打开的文件名;

        ”使用文件方式“是指文件的类型和操作要求;

        ”文件名“是字符串常量或字符串数组。

    例如:FILE *fp = NULL;

              fp = fopen("a.txt","r")  //其意义时在当前目录下打开文件a.txt,只允许进行”读“操作,并使        fp指向该文件。


②文件的关闭函数(fclose函数)

文件一旦使用完毕,应用关闭文件韩式把文件关闭,以避免文件的数据丢失等错误

fclose函数调用的一般形式时:

    fclose(文件指针); 例如fclose(fp);

正常关闭的fclose返回值为0。

    


56.字符读写函数

①字符写入函数fputc

字符读写函数是以字符(字节)为单位的读写函数,每次可从文件读出或向文件写入一个字符

fputc函数的功能是把一个字符写入指定的文件中。函数调用的形式为:

    fpuc('a',fp);

其意义是把字符a写入fp所指向的文件中。

②字符读入函数fgetc

    fgetc(fp) //读入指针fp的字符

③rewind(fp)  //使指针又指向文件首地址。


57.字符串读写函数

①字符串写函数fputs

    调用形式为:fputs(字符串,文件指针);

②字符串读函数fgets

    调用形式为:fpets(字符串,读取长度,文件指针);


58.数据块读写函数fread和fwrite

①调用形式:fread(buffer,size,count,fp);   fwrite(buffer,size,count,fp); 

// buffer:时一个指针,在fread函数中,它表示存放输入数据的首地址。在fwrite函数中,它表示存放输出数据的首地址。

    size:表示数据块的字节数。

    count:表示要读写的数据块块数。

    fp:表示文件指针。


59.格式化文件输入或文件读取fprintf和fscanf

①调用形式:fprintf(fp,"%d,%d",a,b);  fscanf(fp,"%d,%d",&c,&d);


60.文件定位

移动文件内部位置指针的函数主要有两个,即rewind()和fseek()。

①rewind调用形式为:rewind(文件指针);   //它的功能是把文件内部的位置指针移到文件首。

②fseek

    1)调用形式:fseek(文件指针,位移量,起始点);    

        //“文件指针”指向被移动的文件。  

           “位移量”表示移动的字节数,要求位移的时long型数据,以便文件长度大于64kb时不会出错。当用常量表示位移量时,要求加后缀”L“。

             "起始点“表示从何处开始计算位移量,规定的起始点有三中:文件首,当前位置和文件尾。文件首:SEEK_SET(标识符号),0(数字表示)  ;当前位置:SEEK_CUR,1;文件末尾:SEEK_END,2。

    2)注意:

        还要说明的时fseek函数一般用于二进制文件。在文本文件中由于要进行转换,故往往计算的位置会出现错误


61.文件检测函数feof(fp)

①调用格式:feof(文件指针)  

②功能:判断文件是否处于文件结束位置,如文件结束,则返回值为1,否则为0。


③还有一个检测方式ch!=EOF


62.文件检测出错函数ferror(文件指针)

①调用格式:ferror(文件指针);

②功能:检查文件在用各种输入输出函数进行读写时是否出错。如ferror返回值为0,表示未出错,否则表示出错。


63.文件出错标志和文件结束标志置0函数

clearerr函数调用格式:

        clearerr(文件指针);

功能:本函数用于清除出错标志和文件结束标志,使它们为0值。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值