C语言文件处理总结

顺序存取文件是按其在文件中的逻辑顺序依次存取的,只能从头往下读; 随机存取文件是将记录散列在存取介质上的,可以自己定位想要读的文件内容的指针位置。

  一、文件的打开与关闭 
1、fopen FILE *fopen( const char *filename, const char *mode ); 
    调用方式:
    FILE *fp;
    fp=fopen(文件名,使用文件方式);
    说明:
    (1)使用文件方式主要有:只读(r)、只写(w)、追加(a),还有配合"+"使用的方式,如r+、w+、a+;
    (2)默认打开的文件为文本文件,用't'表示,可以省略。如果打开二进制的文件,则使用'b'。例如:r、rt、rb等。
    (3)如果不能实现打开的任务,则函数返回NULL值。
2、fclose int fclose( FILE *stream ); 
    调用方式:
    FILE *fp;
    fclose(fp);
    说明:
    (1)打开文件后,必须要养成关闭文件的好习惯。
    (2)如果关闭文件出错,函数返回非零值,否则返回0.可以用ferror函数检查是否出错。
二、文件的读写 
1、fputc

int fputc( int c, FILE *stream ); 
    调用方式:
    FILE *fp;
    char c;
    fputc(c,fp);
    说明:
    (1)fputc向文件写入一个字符。   
    (2)输出成功则返回值就是输出的字符,如果失败则返回一个EOF。
2、fgetc
int fgetc( FILE *stream );     调用方式:
    FILE *fp;
    char c;
    c=fgetc(fp);
    
    说明:
    (1)fgetc向文件读取一个字符。
    (2)函数返回读取的字符,如果遇到文件结尾,则返回EOF。
    (3)建议使用feof函数来判断是否文件结束。如果文件结束,函数feof返回值为1,否则为0。

顺序存取文件:fscanf,fprintf

int fscanf( FILE *stream, const char *format [, argument ]... );

int fprintf( FILE *stream, const char *format [, argument ]...);

fscanf,fprintf
    调用方式:
    fprintf(文件指针,格式字符串,输出列表);
    fscanf(文件指针,格式字符串,输入列表);
    说明:
    (1)在内存与磁盘频繁交换数据的情况下,建议采用fread和fwrite实现。

随机存取文件: fread, fwrite

size_t fread( void *buffer, size_t size, size_t count, FILE *stream );

size_t fwrite( const void *buffer, size_t size, size_t count, FILE *stream ); 
1. fread
    调用方式:
    fread(buffer,size,count,fp);

    说明:
    (1)buffer:是一个指针。对于fread来说明,它是读入数据的存放地址。对fwrite来说,是要输出数据的地址。
    (2)size:要读写的字节数。可以使用sizeof来获得字节长度。
    (3)count:要进行读写多少个size字的数据项。
    (4)fp:文件指针。
    (5)如果fread或fwrite调用成功,则函数返回值为count的值。
2. fwrite
    见fread说明。


三、文件指针定位

1. rewind void rewind( FILE *stream ); 
调用方式:
FILE *fp;
rewind(fp); 
说明:
(1)rewind使文件的位置指针重新定位于文件开头。

2. fseek int fseek( FILE *stream, long offset, int origin ); 
调用方式:
fseek(文件类型指针,位移量,起始点);
说明:
(1)起始点用0、1、2代替,分别表示文件开始SEEK_SET、文件当前位置SEEK_CUR、文件末尾SEEK_END。
(2)位移量指起始点为基点,向前移动的字节数。一般为long型。
(3)fseek常用二进制文件,可以实现随机读写。
3. ftell long ftell( FILE *stream ); 
调用方式:
FILE *fp;
long i;
i=ftell(fp);
说明:
(1)函数返回文件当前位置,如果调用出错则返回值为-1L。

四、出错的检测 
1、ferror int ferror( FILE *stream ); 
    调用方式:
    FILE *fp;
    ferror(fp);
    说明:
    (1)返回值为0,表示未出错,返回值为1,表示出错。
    (2)同一个文件每一次调用输入输出函数,均产生一个新 的ferror函数值。
    (3)在执行fopen函数时,ferror函数的初始值自动置为0。
2、clearerr

void clearerr( FILE *stream ); 
    调用方式:
    FILE *fp;
    clearerr(fp);
    说明:
    (1)使文件错误标志和文件结束标志为0.

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值