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 文件指针
               返回值是成功读取的次数
  • 相关阅读:
    【Java】SAX解析characters 错误截取问题的解决
    【Scala】Scala-调用Java-集合
    【Java】Java-XML解析利器-SAX-高性能-易用
    java.io.FileNotFoundException: D:xxxyyy (拒绝访问。)问题
    java-io-inputStream
    java-io-FileReader和FileWriter类
    java-io-FileInputStream与FileOutputStream类
    问题-栈S最多能容纳4个元素,现有6个元素按A、B、C、D、E、F顺序进栈,问可能的出栈顺序。
    软件设计-模块耦合
    结构化程序设计
  • 原文地址:https://www.cnblogs.com/yyc954330712/p/9430243.html
Copyright © 2011-2022 走看看