C语言对文件的输入和输出

1、文件

        程序文件

        数据文件(主要讨论) 

                1)文件时程序设计中一个重要的概念。所谓“文件”一般指存储在外部介质上数据的集合

                2)数据文件可分为ASCII文件和二进制文件

                3)ANSI C标准采用“缓冲文件系统”处理数据文件。从内存向磁盘输出数据必须先送到内存中的缓冲区,装满缓冲区后才一起送到磁盘中去。如果从磁盘向计算机读入数据,则一次从磁盘文件将一批数据输入到内存缓冲区(充满缓冲区),然后再从缓冲区逐个地将数据送到程序数据区(给程序变量)

                4)文件信息区:用一个结构体表示名称为FILE。文件指:指向该文件地文件信息区地指针。

2、打开与关闭文件

                  fopen(文件名,使用文件方式)

                  fclose(fp)   

        1、用fopen函数打开数据文件

                fopen(文件名,使用文件方式) 返回值为指向FILE结构体地指针

               使用文件地方式有:r只读,w只写,a追加,rb只读(二进制文件),wb只写(二进制文件),ab追加(二进制文件)

                如果不能实现“打开”地任务fopen函数将带回一个空指针NULL

         2、用fclose函数打开数据文件

                fclose(fp)    成功返回0,否则返回EOF(-1)

3、顺序读写数据文件

                fgetc(fq)

        1、 从fq指向地文件读入一个字符

                fputs(ch,fq)

        2、把字符ch写到文件指针变量fq所指向的文件中

        3、C系统已经将fgetc和fputc定义为宏:getc和fputc

                feof(fq)

        4、用于检查是否读取到文件的末尾:若读到文件末尾返回1,否则返回0

        5、像文件读写一个字符串

                fgets(str,n,fp)

                从fq指向的文件读入一个长度为n-1的字符串末尾添加\0,存放到字符数组str中.成功返回str首地址,失败返回NULL。若提前遇到\n或者EOF则读入结束,但是\n会被读入。gets是从终端进行读字符串

                fputs(str,fq)

                把str所指向的字符串写到文件指针变量fq所指向的文件中,成功返回0,失败返回EOF

        6、用格式化的方式读写文件:

                fprintf(文件指针,格式字符串,输出表列)

                fprintf(文件指针,格式字符串,输入表列)

                 需要进行二进制和ASCII码间的转换速度比较慢

             用二进制方式向文件读写一组数据:

                fread(buffer,size,count,fq)

                fwrite(buffer,size,count,fq)

               buffer 是一个地址,对fread来说,它是用来存放从文件读入的数据的存储区的地址

                对fwrite来说,是要把此地址开始的存储区中的数据向文件输出。

                size:要读写的字节数

                count:要读写多少个数据项

                 fq:FILE类型的指针

4、随机读写数据文件

                rewind(fq)

        该函数使文件的位置指向文件开头

                fseek(文件类型指针,位移量,起始点)         

        “起始点”用0,1,2代替,分别表示“文件开始位置”,“当前位置”,“文件末尾位置”

        “位移量”以“起始点”为基点,向前移动的字节数,为long型数据

                ftell(fq)

        函数测定文件位置标记的当前位置

5、文件读写的出错检测

                ferror(fq)

                clearerr(fq)

         每次调用一次文件输入输出函数ferror都会有一个返回时,未出错返回0,否则返回非0

        chearerr(fq)可以将ferror(fq)值变为0,以便下一次的检测。                       

                

                

你可能感兴趣的:(c语言)