C语言读写文件

来源:互联网 发布:淘宝店铺模板什么格式 编辑:程序博客网 时间:2024/05/18 02:33

C语言库函数包括文件的打开、关闭、读、写、 定位等各种操作


要操作文件,首先要声明一个文件指针变量FILE* fp;


  • 打开文件

调用fopen打开文件

文件指针名=fopen(文件名,使用文件方式);  PS:这里文件路径必须是带双斜杠\\

其中,

1.

文件使用方式        意 义
“rt”      只读打开一个文本文件,只允许读数据
“wt”      只写打开或建立一个文本文件,只允许写数据
“at”      追加打开一个文本文件,并在文件末尾写数据
“rb”      只读打开一个二进制文件,只允许读数据
“wb”       只写打开或建立一个二进制文件,只允许写数据
“ab”       追加打开一个二进制文件,并在文件末尾写数据
“rt+”      读写打开一个文本文件,允许读和写
“wt+”      读写打开或建立一个文本文件,允许读写
“at+”      读写打开一个文本文件,允许读,或在文件末追加数 据
“rb+”      读写打开一个二进制文件,允许读和写
“wb+”      读写打开或建立一个二进制文件,允许读和写
“ab+”      读写打开一个二进制文件,允许读,或在文件末追加数据

r:读文件

w:写文件

a:在文件末尾追加

t:文本文件,可省略

b:二进制文件

+:读与写


2.只用r时,只能打开一个已存在文件,并读取数据


3.用“w”打开的文件只能向该文件写入。 若打开的文件不存在,则以指定的文件名建立该文件,若打开的文件已经存在,则将该文件删去,重建一个新文件。


4.把一个文本文件读入内存时,要将ASCII码转换成二进制码, 而把文件以文本方式写入磁盘时,也要把二进制码转换成ASCII码,因此文本文件的读写要花费较多的转换时间。对二进制文件的读写不存在这种转换。


5.文件使用完应该关闭,调用fclose函数。


  • 关闭文件

简单地调用fclose(fp);

   

  • 读写文件

字符读写函数 :fgetc和fputc

    字符变量=fgetc(文件指针);   PS:判断字符变量是否为EOF来判断是否到达文件尾部

    1. 在fgetc函数调用中,读取的文件必须是以读或读写方式打开的。


   2. 在文件内部有一个位置指针。用来指向文件的当前读写字节。在文件打开时,该指针总是指向文件的第一个字节。使用fgetc 函数后,该位置指针将向后移动一个字节。 因此可连续多次使用fgetc函数,读取多个字符。应注意文件指针和文件内部的位置指针不是一回事。文件指针是指向整个文件的,须在程序中定义说明,只要不重新赋值,文件指针的值是不变的。文件内部的位置指针用以指示文件内部的当前读写位置,每读写一次,该指针均向后移动,它不需在程序中定义说明,而是由系统自动设置的。

   

    fputc(字符,文件指针);

    1.被写入的文件可以用、写、读写,追加方式打开,用写或读写方式打开一个已存在的文件时将清除原有的文件内容,写入字符从文件首开始。如需保留原有文件内容,希望写入的字符以文件末开始存放,必须以追加方式打开文件。被写入的文件若不存在,则创建该文件。

    2. 每写入一个字符,文件内部位置指针向后移动一个字节。

    3. fputc函数有一个返回值,如写入成功则返回写入的字符, 否则返回一个EOF。可用此来判断写入是否成功。



字符串读写函数:fgets和fputs

   fgets(字符数组名,n,文件指针);从fp所指的文件中读出n-1个字符送入字符数组中。

   1. 在读出n-1个字符之前,如遇到了换行符或EOF,则读出结束。


    2. fgets函数也有返回值,其返回值是字符数组的首地址。


   fputs(字符串,文件指针)  PS:字符串可以是字符串常量,也可以是字符数组名, 或指针变量



数据块读写函数:freed和fwrite


可用来读写一组数据,如一个数组元素,一个结构变量的值

   fread(buffer,size,count,fp);

   fwrite(buffer,size,count,fp);

buffer表示存放输入、输出数据的首地址, size表示数据块的字节数,count 表示要读写的数据块块数,fp 表示文件指针。


格式化读写函数:fscanf和fprinf

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

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


  • 其他操作

rewind(文件指针); 它的功能是把文件内部的位置指针移到文件首。


fseek(文件指针,位移量,起始点);  用来移动文件内部位置指针。其中位移量是long型,后加L

起始点    表示符号    数字表示
——————————————————————————
文件首    SEEK_SET    0
当前位置   SEEK_CUR      1
文件末尾   SEEK_END      2


文件指针到当前内部位置指针的相对位移=ftell(文件指针) ; 用来获取文件大小

fseek(fp, 0, SEEK_END);

length = ftell(fp);


 feof(文件指针);

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


 ferror(文件指针);

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


clearerr(文件指针); 

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



0 0
原创粉丝点击