楼主: ReneeBK
2350 23

C语言文件操作函数大全(超详细) [推广有奖]

21
ReneeBK 发表于 2015-11-26 09:27:18
  1. setbuffer(设置文件流的缓冲区)
  2. 相关函数 setlinebuf,setbuf,setvbuf
  3. 表头文件 #include<stdio.h>
  4. 定义函数 void setbuffer(FILE * stream,char * buf,size_t size);
  5. 函数说明 在打开文件流后,读取内容之前,调用setbuffer()可用来设置文件流的缓冲区。参数stream为指定的文件流,参数buf指向自定的缓冲区起始地址,参数size为缓冲区大小。
  6. 返回值
复制代码

22
ReneeBK 发表于 2015-11-26 09:28:30
  1. setlinebuf(设置文件流为线性缓冲区)
  2. 相关函数 setbuffer,setbuf,setvbuf
  3. 表头文件 #include<stdio.h>
  4. 定义函数 void setlinebuf(FILE * stream);
  5. 函数说明 setlinebuf()用来设置文件流以换行为依据的无缓冲IO。相当于调用:setvbuf(stream,(char * )NULL,_IOLBF,0);请参考setvbuf()。
复制代码

23
ReneeBK 发表于 2015-11-26 09:29:06
  1. setvbuf(设置文件流的缓冲区)
  2. 相关函数 setbuffer,setlinebuf,setbuf
  3. 表头文件 #include<stdio.h>
  4. 定义函数 int setvbuf(FILE * stream,char * buf,int mode,size_t size);
  5. 函数说明 在打开文件流后,读取内容之前,调用setvbuf()可以用来设置文件流的缓冲区。参数stream为指定的文件流,参数buf指向自定的缓冲区起始地址,参数size为缓冲区大小,参数mode有下列几种
  6. _IONBF 无缓冲IO
  7. _IOLBF 以换行为依据的无缓冲IO
  8. _IOFBF 完全无缓冲IO。如果参数buf为NULL指针,则为无缓冲IO。
复制代码

24
ReneeBK 发表于 2015-11-26 09:30:02
  1. ungetc(将指定字符写回文件流中)
  2. 相关函数 fputc,getchar,getc
  3. 表头文件 #include<stdio.h>
  4. 定义函数 int ungetc(int c,FILE * stream);
  5. 函数说明 ungetc()将参数c字符写回参数stream所指定的文件流。这个写回的字符会由下一个读取文件流的函数取得。
  6. 返回值 成功则返回c 字符,若有错误则返回EOF。
  7. 复制代码 代码如下:

  8. #include <stdio.h>
  9. #include <stdlib.h>
  10. int main()
  11. {
  12.      FILE *fp = NULL;
  13.      char* str;
  14.      char re;
  15.      int num = 10;
  16.      str = (char*)malloc(100);
  17.      //snprintf(str, 10,"test: %s", "0123456789012345678");
  18.     // printf("str=%s\n", str);
  19.      fp = fopen("/local/test.c","a+");
  20.      if (fp==NULL){
  21.         printf("Fail to open file\n");
  22.      }
  23. //     fseek(fp,-1,SEEK_END);
  24.      num = ftell(fp);
  25.      printf("test file long:%d\n",num);
  26.      fscanf(fp,"%s",str);
  27.      printf("str = %s\n",str);
  28.      printf("test a: %s\n",str);
  29.      while ((re=getc(fp))!=EOF){//getc可以用作fgetc用
  30.         printf("%c",re);
  31.      }
  32.      //fread(str,10,10,fp);
  33.      fgets(str,100,fp);
  34.      printf("test a: %s\n",str);
  35.      sprintf(str,"xiewei test is:%s", "ABCDEFGHIGKMNI");
  36.      printf("str2=%s\n", str);
  37.    //  fprintf(fp,"%s\n",str);
  38.      fwrite(str,2,10,fp);
  39.      num = ftell(fp);
  40.      if(str!=NULL){
  41.         free(str);
  42.      }
  43.      fclose(fp);
  44.      return 0;
  45. }
复制代码

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2026-1-24 03:27