C语言-09-文件操作

文件类型

  • 文本文件(ASCII)
    • 简单的文本文件,可用任何文字处理程序阅读
  • 二进制文件
    • 包含 在ASCII及扩展ASCII字符中编写的数据或程序指令 的文件,通常图形文件及文字处理程序等计算机程序都属于二进制文件

文件访问模式

  • 文本文件
    • “r”
      • 打开一个已有的文本文件,允许读取文件
    • “w”
      • 打开一个文本文件,允许写入文件。若文件不存在,则创建一个新的文件
    • “a”
      • 打开一个文本文件,以追加模式写入文件。若文件不存在,则创建一个新的文件
    • “r+”
      • 打开一个文本文件,允许读写文件
    • “w+”
      • 打开一个文本文件,允许读写文件,文件会被截断为0长度。若文件不存在,则创建一个新的文件
    • “a+”
      • 打开一个文本文件,允许读写文件。从头读取,追加写入。若文件不存在,则创建一个新的文件
  • 二进制文件(对应于文本文件访问模式)
    • “rb” ~> “r”
    • “wb” ~> “w”
    • “ab” ~> “a”
    • “rb+” ~> “r+”
    • “r+b” ~> “r+”
    • “wb+” ~> “w+”
    • “w+b” ~> “w+”
    • “ab+” ~> “a+”
    • “a+b” ~> “a+”

文件操作流程

  • 打开文件

    // filename:文件路径名  mode:文件访问模式
    FILE *fopen(const char * filename, const char * mode)
    
  • 操作文件

    • 读取文件

      // 读取一个字符
      int fgetc(FILE *fp)
      // 读取 n-1 个字符(字符串后面有一个字符串结束标志,buf的长度为n)
      char *fgets(char *buf, int n, FILE *fp)
      // 在文件结束之前遇到空格,换行符,会提前终止
      int fscanf(FILE *fp, const char format)
      
    • 写入文件

      // 写入一个字符
      int fputc(int c, FILE *fp)
      // 写入一个字符串
      int fputs(const char *s, FILE *fp)
      
  • 关闭文件

    • 写入文件的内容,只有在调用fclose(FILE *fp)后,才会被写入到磁盘文件中

    • 在关闭文件前,读取磁盘文件,无法读取文件的最新内容(写入但未保存的内容)

      int fclose( FILE *fp )
      

示例

  • 文件的简单操作

    void fileOperation() {
        // 打开文件, 若不存在,则会目录/Users/mac/Desktop/下创建一个文件file.text,访问模式为:读写
        FILE *fwp = fopen("/Users/mac/Desktop/spring.txt", "r+");
        // 写入 “春已暖,花已开,什么时候去看海” 到文件中
        fputs("春已暖,花已开,什么时候去看海", fwp);
        // 关闭文件,此处可以调试写入的内容是何时保存到磁盘文件的
        fclose(fwp);
        // 读取文件
        FILE *frp = fopen("/Users/mac/Desktop/spring.txt", "r+");
        char buffer[255];
        fscanf(frp, "%s", buffer);
        printf("文件的内容为:\n%s\n", buffer);
        // 关闭文件
        fclose(frp);
    }
    
posted @ 2016-02-17 09:09  世俗孤岛  阅读(475)  评论(0编辑  收藏  举报