有缓冲访问文件(库函数)

库函数主要有fopen、fclose、fread、fwrite、fprintf、fscanf等函数。

fopen函数:

  表头文件: #include<stdio.h>
  定义函数:  FILE * fopen(const char * path,const char * mode);
  函数说明:  参数path字符串包含欲打开的文件路径及文件名,参数mode字符串则代表着流形态,mode有下列几种字符串。
    R:打开只读文件,该文件必须存在。
   r+:打开可读写的文件,该文件必须存在。
    w:打开只写文件,若文件存在则文件长度清0,即该文件内容会消失;若文件不存在则建立该文件

   w+:打开可读写文件,若文件存在则文件长度清0,即该文件内容会消失;若文件不存在则建立该文件。

   a:以附加的方式打开只写文件,若文件不存在,则会建立该文件;如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。
   a+:以附加方式打开可读写的文件,若文件不存在,则会建立该文件;如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。
  上述的字符串都可以再加一个b字符,如rb、w+b或ab+等组合,加入b字符用来告诉函数库打开的文件为二进制文件,而非纯文字文件。不过在POSIX系统,包含Linux都会忽略该字符。
  由fopen( )所建立的新文件会具有S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH(0666)权限,此文件权限也会参考umask值
    返回值 :  文件顺利打开后,指向该流的文件指针就会被返回;若果文件打开失败,则返回NULL,并把错误代码存在errno中。

fclose函数:

  表头文件:#include<stdio.h>
  定义函数:int fclose(FILE * stream);
  函数说明: fclose( )用来关闭先前fopen( )打开的文件,此动作会让缓冲区内的数据写入文件中,并释放系统所提供的文件资源
  返回值:  若关文件动作成功则返回0;有错误发生时则返回EOF并把错误代码存到errno。

fread函数:

  表头文件:#include<stdio.h>
  定义函数:size_t fread(void * ptr,size_t size,size_t nmemb,FILE * stream);
  函数说明:fread( )用来从文件流中读取数据。参数stream为已打开的文件指针,参数ptr指向欲存放读取进来的数据空间,读取的字符数由参数nmemb来决定。fread( )会返回实际读取到的nmemb数目,如果此值比参数nmemb小,则代表可能读到了文件尾或有错误发生,这时必须用feof( )或ferror( )来判定发生什么情况
  返回值:返回实际读取到的nmemb数目

fwrite函数:

  表头文件: #include<stdio.h>
  定义函数:size_t fread(void * ptr,size_t size,size_t nmemb,FILE * stream);
  函数说明: fread( )用来从文件流中读取数据。参数stream为已打开的文件指针,参数ptr指向欲存放读取进来的数据空间,读取的字符数由参数size*nmemb来决定。fread( )会返回实际读取到的nmemb数目,如果此值比参数nmemb小,则代表可能读到了文件尾或有错误发生,这时必须用feof( )或ferror( )来判定发生什么情况
  返回值:返回实际读取到的nmemb数目

fseek函数:

表头文件:#include<stdio.h>
定义函数: int fseek(FILE * stream,long offset,int whence);
函数说明: fseek( )用来移动文件流的读写位置。参数stream为已打开的文件指针,参数offset为根据参数whence来移动读写位置的位移数。参数whence为下列其中一种:SEEK_SET从距文件开头offset位移量为新的读写位置;SEEK_CUR以目前的读写位置往后增加offset个位移量;SEEK_END将读写位置指向文件尾后再增加offset个位移量。
  当whence值为SEEK_CUR或SEEK_END时,参数offset允许负值的出现。

  下列是较特别的使用方式:
  欲将读写位置移动到文件开头时,fseek(FILE * stream,0,SEEK_SET);
  欲将读写位置移动到文件尾时,fseek(FILE * stream,0,0SEEK_END);
返回值:  当调用成功时则返回0;若有错误则返回-1,errno会存放错误代码。

fgetc函数:

表头文件: #include<stdio.h>
定义函数int fgetc(FILE * stream);
函数说明fgetc( )用来从参数stream所指的文件中读取一个字符;若读到文件尾而无数据时便返回EOF
返回值fgetc( )会返回读取到的字符;若返回EOF则表示到了文件尾

getc函数:

表头文件 #include<stdio.h>
定义函数 int getc(FILE * stream);
函数说明 getc( )用来从参数stream所指的文件中读取一个字符;若读到文件尾而无数据时便返回EOF。虽然getc( )与fgetc( )作用相同,但getc( )为宏定义,非真正的函数调用
返回值 getc( )会返回读取到的字符;若返回EOF则表示到了文件尾

getchar函数:

表头文件: #include<stdio.h>
定义函数int getchar(void);
函数说明: getchar( )用来从标准输入设备中读取一个字符;然后将该字符从unsigned char转换成int后返回
返回值getchar( )会返回读取到的字符;若返回EOF则表示有错误发生

fputc函数:

表头文件:#include<stdio.h>
定义函数:int fputc(int c,FILE * stream);
函数说明:fputc将参数c转为unsigned char后写入参数stream指定的文件中
返回值: fputc( )返回写入成功的字符,即参数c;若返回EOF则代表写入失败

putc函数:

表头文件:#include<stdio.h>
定义函数  int putc(int c,FILE * stream);
函数说明  putc( )将参数c转为unsigned char后写入参数stream指定的文件中。虽然putc( )与fputc( )作用相同,但putc( )为宏定义,非真正的函数调用
返回值: putc( )返回写入成功的字符,即参数c;若返回EOF则代表写入失败

putchar函数:

表头文件:#include<stdio.h>
定义函数:int putchar (int c);
函数说明:putchar( )用来将参数c字符写到标准输出设备
返回值:putchar( )返回输出成功的字符,即参数c;若返回EOF则代表输出失败

fprintf函数:
表头文件:#include<stdio.h>
定义函数: int fprintf(FILE * stream, const char * format,……);
函数说明: fprintf( )会根据参数format字符串来转换并格式化数据,然后将结果输出到参数stream指定的文件中,直到出现字符串结束(\0)为止
返回值:关于参数format字符串的格式请参考printf( )。成功则返回实际输出的字符数,失败则返回-1,错误原因存于errno中
 
下面用一个程序来看一下各个函数的具体用法:




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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值