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\n",....);
           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 文件指针
           返回值是成功读取的次数
posted @ 2018-08-06 22:06  yyc954330712  阅读(261)  评论(0编辑  收藏  举报