zoukankan      html  css  js  c++  java
  • 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("文件的内容为:
      %s
      ", buffer);
          // 关闭文件
          fclose(frp);
      }
      
  • 相关阅读:
    windows :Tomcat免安装版环境变量配置 + jdk配置
    如何在官网下载Spring jar包
    浅析win32 Win64 x86 x64 区别 及Eclipse启动报Java was started but returned exit code=13 错误
    MyBatis拦截器打印不带问号的完整sql语句方法
    MyBatis多个接口参数报错:Available parameters are [0, 1, param1, param2], 及解决方法
    Leetcode40--->Combination Sum II
    Leetcode39--->Combination Sum(在数组中找出和为target的组合)
    Leetcode38--->Count and Say
    js 保留小数位数
    如何禁用easyui-linkbutton 中的Click事件
  • 原文地址:https://www.cnblogs.com/theDesertIslandOutOfTheWorld/p/lavenderofme.html
Copyright © 2011-2022 走看看