zoukankan      html  css  js  c++  java
  • 【C语言】文件操作

    一、文件的储存形式

    分为文本(ASCII码)文件二进制文件两类。

    文本文件

    文件每一个字节存放一个ASCII码,代表一个字符。如整数123在文本文件中占3个字节。

    二进制文件

    将数据以其在内存中的形式原样存放。如整数123和整数1234在二进制文件中均占4个字节。

    二、文件操作

    //文件指针变量
    FILE *fp;
    
    //文件打开函数
    FILE *fopen(const char *filename,const char *mode);
    //返回值为一个文件指针变量
    //参数为文件名及使用方式
    
    //文件关闭函数
    int fclose(FILE *fp);
    //返回值为0(成功关闭)或非零值(关闭失败)
    //参数为文件指针
    
    //从文件读入
    int fscanf(FILE *fp,const char*format,...);
    //例
    fscanf(fp,"%d,%f",&i,&a);
    
    //输出到文件
    int fprintf(FILE *fp,const char*format,...);
    //例
    fprintf(fp,"%d,%f",a,b);
    
    //容错处理
    //如,当文件指针为空时终止进程
    if((fp=fopen("input.txt","w"))==NULL){
      printf("文件打开失败!");
      exit(0);
    }
    //exit(0)为正常退出
    //exit(非零值)为异常退出
    
    //从文件读入字符
    int fgetc(FILE *fp);
    //返回值为一个字符
    //如果读到文件结束符则返回EOF
    
    //输出字符到文件
    int fputc(int ch,FILE *fp);
    //返回值为一个字符(如果成功写入)或EOF
    
    //检测文件位置函数
    int feof(FILE *fp);
    //如果读到文件尾返回非零常数,否则返回0
    
    //从文件读入字符串
    char *fgets(char *str,int n,FILE *fp);
    //读入最多n-1个字符并在末尾添加'',然后存入str
    //返回值为字符串首地址
    
    //输出字符串到文件
    int fputs(const char *s,FILE *fp);
    //返回值为一个非负数(如果成功输出),否则返回EOF
    
    //读写数据块
    
    //从文件读入学生数据
    for(int i=1;i<=30;i++)
      fread(&stu[i],sizeof(struct student),1,fp);
    
    //输出学生数据到文件
    for(int i=1;i<=30;i++)
      fwrite(&stu[i],sizeof(struct student),1,fp);
    
    文件使用方式 含义
    "r"(只读) 打开文本文件(输入)
    "w"(只写) 打开文本文件(输出)
    "a"(追加) 向文本文件尾加数据
    "rb"(只读) 打开二进制文件(输入)
    "wb"(只写) 打开二进制文件(输出)
    "ab"(追加) 向二进制文件尾加数据
    "r+"(读写) 打开文本文件
    "w+"(读写) 新建文本文件
    "a+"(读写) 打开文本文件
    "rb+"(读写) 打开二进制文件
    "wb+"(读写) 新建二进制文件
    "ab+"(读写) 打开二进制文件

    以"w"方式写入:

    如果文件已经存在,则删去原文件并重新建立;否则新建一个文件

    以"a"方式写入:

    如果文件已经存在,则在原数据末尾写入新数据;否则新建一个文件

  • 相关阅读:
    第一章、Docker 简介
    远程库的创建及操作
    分支
    Git常用命令
    初始化本地仓库
    Git的本地结构与远程中心
    Git的安装
    版本控制系统
    冒泡排序
    选择排序
  • 原文地址:https://www.cnblogs.com/streamazure/p/13034951.html
Copyright © 2011-2022 走看看