c 语言文件处理相关函数

      c语言中的文件处理相关函数,其实也用的比较多,这一次在写一个文件处理的类时,优先就想到使用文件指针来操作,但是悲催的是好久没撸过文件操作集的相关函数了。都忘记了,还是广大网友给力,让我从度娘中拾回自信;纸上得来终觉浅,妈蛋知识忘记的太快,还是做点笔记加深下印象。

     c语言中用文件指针  FILE * 来操作文件,现在整理下 FILE *  及其相关的方法。

  1.    FILE* fopen(const char * fname,const char* mode);   

    fname为需要操作的文件名, mode为打开方式,有如下打开方式。若打开文件成功,返回一个文件指针,否则返回NULL;

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

      2. int  fclose(FILE * fp);       关掉所打开的文件,fp为文件指针,成功返回0, 失败返回EOF,比较简单。

      3. int int fputc(int c, FILE *stream);        向流写入一个字符,成功返回这个字符,失败返回EOF。

  4. int fgetc(FILE *stream);         从流中读一个字符,成功返回这个字符,失败返回EOF。  

  5. int fprintf(FILE *stream, const char *format[, argument, ...]);   按格式输入到流,用法与printf()相同,不过输出不是到控制台。

  6. int fscanf(FILE *stream, const char *format[, address, ...]);   按流中格式读取,用法与scanf()相同,不过从流中读取。

 

  7. int feof(FILE *stream);  在文件到达文件尾时给出一个非零值。

  8. int ferror(FILE *stream);    ferror()函数检查stream(流)中的错误, 如果没发生错误返回0,否则返回非零. 如果发生错误, 使用perror()检测发生什么错误。

  9. int fread( void *buffer, size_t size, size_t num, FILE *stream );   函数fread()读取[num]个对象(每个对象大小为size(大小)指定的字节数),并把它们替换到由buffer(缓冲区)指定的数组. 数据来自给出的输入流. 函数的返回值是读取的内容数量.                使用feof()ferror()判断到底发生哪个错误. 

  10. int fseek( FILE *stream, long offset, int origin );  函数fseek()为给出的流设置位置数据. origin的值应该是下列值其中之一(在stdio.h中定义):

名称 说明
SEEK_SET 从文件的开始处开始搜索
SEEK_CUR 从当前位置开始搜索
SEEK_END 从文件的结束处开始搜索

                 fseek()成功时返回0,失败时返回非零. 你可以使用fseek()移动超过一个文件,但是不能在开始处之前. 使用fseek()清除关联到流的EOF标记. 

  11.  int fsetpos( FILE *stream, const fpos_t *position );       fsetpos()函数把给出的流的位置指针移到由position对象指定的位置. fpos_t是在stdio.h中定义的. fsetpos()执行成功返回0,失败时返回非零. 

 

  12.  long ftell( FILE *stream );     ftell()函数返回stream(流)当前的文件位置,如果发生错误返回-1. 

  13.  int fwrite( const void *buffer, size_t size, size_t count, FILE *stream );  fwrite()函数从数组buffer(缓冲区)中, 写count个大小为size(大小)的对象到stream(流)指定的流. 返回值是已写的对象的数量. 

 

  14.  int remove( const char *fname );     remove()函数删除由fname(文件名)指定的文件. remove()成功时返回0,如果发生错误返回非零. 

  15.  int rename( const char *oldfname, const char *newfname );    函数rename()更改文件oldfname的名称为newfname. rename()成功时返回0,错误时返回非零.  

  16.  void rewind( FILE *stream );  函数rewind()把文件指针移到由stream(流)指定的开始处, 同时清除和流相关的错误和EOF标记.

 

 

posted on 2015-07-06 09:46  宇智波.鼬  阅读(207)  评论(0编辑  收藏  举报

导航