zoukankan      html  css  js  c++  java
  • c语言的文本操作

    1、文件

      文件分为文本文件和二进制文件。硬盘上存在的“文件”肯定是二进制的。

      文本文件:里面数据是数据的ASCII值的二进制。

      二进制文件:存在的是数据的二进制。

    2、文件的打开和关闭

      Linux环境下,文件的打开和关闭时不分二进制的文件或文本文件。

      文件的打开: 

    FILE *fopen(const char *path,const char *mode);

      path:描述文件路径的字符串

      mode:打开文件的方式(字符串)

        “r” 以只读的方式来打开文件,文件不存在则打开失败。

        “w”以只写的方式打开文件,文件不存在则创建,存在则清空。

        “a”以只写的方式打开文件,文件不存在则创建,如果存在则在后面追加上去。

        “r+”具有读写属性,从文件头开始写,保留原文件中没有被覆盖的内容。

        “w+”具有读写属性,写的时候如果文件存在,会被清空,从头开始写。

        “a+”以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 

              int fclose(FILE *fp);
               //关闭文件后文件指针要置空。
              
    3、文本文件的读写方式:
           fprintf(FILE* fp,占位符,变量名);
               FILE* frw = fopen("text.tet","w");
               sprintf(frw,"%d %s ",....);
               fclose(frw);
               frw =NULL;
              fscanf(FILE* fp,占位符,变量地址);
       
      
       二进制文件的读写:
           在windows打开二进制文件时,权限要加"rb","wb","ab"
           size_t fwrite(void *ptr, size_t size, size_t nmemb, FILE *stream);
               ptr 要写入的数据的首地址
               size 一次写入多少个字节
               nmemb 写入多少次size
               stream 文件指针
               返回值是写入成功的次数
              
               int arr[5]= { 9,1,8,2,3};
               FILE* fwp = fopen("text.dat","wb");
                int ret =fwrite(arr,sizeof(int),5,fwp);
               printf("%d",ret)
              
             
              size_t fread(const void *ptr, size_t size, size_t nmebe,FILE *stream);
               ptr 读取到的数据存储
               size 每次读取多少个字节
               nmemb 读取多少次size
               stream 文件指针
               返回值是成功读取的次数
  • 相关阅读:
    qt程序编译错误:could not exec ‘/usr/lib/x86_64-linux-gnu/qt4/bin/qmake’
    安装 yaml-cpp,MP4V2
    安装cmake 和 opencv 4.0.0
    windows系统,boost编译安装
    messageQ 消息队列
    fflush 和 fsync 的区别
    开源一个 PDF 小工具集软件【使用 PDFium 库实现】
    封装 libjpeg 库
    纯 C++ 代码实现的 INI 文件读写类
    C++11 —— 使用 thread 实现线程池
  • 原文地址:https://www.cnblogs.com/yyc954330712/p/9430243.html
Copyright © 2011-2022 走看看