楼主: ReneeBK
1873 23

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

  • 1关注
  • 62粉丝

VIP

学术权威

14%

还不是VIP/贵宾

-

TA的文库  其他...

R资源总汇

Panel Data Analysis

Experimental Design

威望
1
论坛币
49417 个
通用积分
52.1704
学术水平
370 点
热心指数
273 点
信用等级
335 点
经验
57815 点
帖子
4006
精华
21
在线时间
582 小时
注册时间
2005-5-8
最后登录
2023-11-26

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
http://www.jb51.net/article/37688.htm
  1. #include<stdio.h>
  2. main()
  3. {
  4. FILE * fp;
  5. fp=fopen(“noexist”,”a+”);
  6. if(fp= =NULL) return;
  7. fclose(fp);
  8. }
复制代码


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:文件操作 超详细 C语言 Article include C语言

沙发
ReneeBK 发表于 2015-11-26 08:43:27 |只看作者 |坛友微信交流群
  1. fdopen(将文件描述词转为文件指针)
  2. 相关函数 fopen,open,fclose
  3. 表头文件 #include<stdio.h>
  4. 定义函数 FILE * fdopen(int fildes,const char * mode);
  5. 函数说明 fdopen()会将参数fildes 的文件描述词,转换为对应的文件指针后返回。参数mode 字符串则代表着文件指针的流形态,此形态必须和原先文件描述词读写模式相同。关于mode 字符串格式请参考fopen()。
  6. 返回值 转换成功时返回指向该流的文件指针。失败则返回NULL,并把错误代码存在errno中。
  7. 范例
  8. 复制代码 代码如下:

  9. #include<stdio.h>
  10. main()
  11. {
  12. FILE * fp =fdopen(0,”w+”);
  13. fprintf(fp,”%s/n”,”hello!”);
  14. fclose(fp);
  15. }
  16. 执行 hello!
复制代码

使用道具

藤椅
ReneeBK 发表于 2015-11-26 08:43:59 |只看作者 |坛友微信交流群
  1. .feof(检查文件流是否读到了文件尾)
  2. 相关函数 fopen,fgetc,fgets,fread
  3. 表头文件 #include<stdio.h>
  4. 定义函数 int feof(FILE * stream);
  5. 函数说明 feof()用来侦测是否读取到了文件尾,尾数stream为fopen()所返回之文件指针。如果已到文件尾则返回非零值,其他情况返回0。
  6. 返回值 返回非零值代表已到达文件尾。
复制代码

使用道具

板凳
ReneeBK 发表于 2015-11-26 08:44:33 |只看作者 |坛友微信交流群
  1. fflush(更新缓冲区)
  2. 相关函数 write,fopen,fclose,setbuf
  3. 表头文件 #include<stdio.h>
  4. 定义函数 int fflush(FILE* stream);
  5. 函数说明 fflush()会强迫将缓冲区内的数据写回参数stream指定的文件中。如果参数stream为NULL,fflush()会将所有打开的文件数据更新。
  6. 返回值 成功返回0,失败返回EOF,错误代码存于errno中。
  7. 错误代码 EBADF 参数stream 指定的文件未被打开,或打开状态为只读。其它错误代码参考write()。
  8.  
复制代码

使用道具

报纸
ReneeBK 发表于 2015-11-26 08:45:19 |只看作者 |坛友微信交流群
  1. .fgetc(由文件中读取一个字符)
  2. 相关函数 open,fread,fscanf,getc
  3. 表头文件 include<stdio.h>
  4. 定义函数 nt fgetc(FILE * stream);
  5. 函数说明 fgetc()从参数stream所指的文件中读取一个字符。若读到文件尾而无数据时便返回EOF。
  6. 返回值 getc()会返回读取到的字符,若返回EOF则表示到了文件尾。
  7. 范例
  8. 复制代码 代码如下:

  9. #include<stdio.h>
  10. main()
  11. {
  12. FILE *fp;
  13. int c;
  14. fp=fopen(“exist”,”r”);
  15. while((c=fgetc(fp))!=EOF)
  16. printf(“%c”,c);
  17. fclose(fp);
  18. }
复制代码

使用道具

地板
ReneeBK 发表于 2015-11-26 08:46:15 |只看作者 |坛友微信交流群
  1. fgets(由文件中读取一字符串)
  2. 相关函数 open,fread,fscanf,getc
  3. 表头文件 include<stdio.h>
  4. 定义函数 har * fgets(char * s,int size,FILE * stream);
  5. 函数说明 fgets()用来从参数stream所指的文件内读入字符并存到参数s所指的内存空间,直到出现换行字符、读到文件尾或是已读了size-1个字符为止,最后会加上NULL作为字符串结束。
  6. 返回值 gets()若成功则返回s指针,返回NULL则表示有错误发生。
  7. 范例
  8. 复制代码 代码如下:

  9. #include<stdio.h>
  10. main()
  11. {
  12. char s[80];
  13. fputs(fgets(s,80,stdin),stdout);
  14. }
  15. 执行 this is a test /*输入*/
  16. this is a test /*输出*/
复制代码

使用道具

7
ReneeBK 发表于 2015-11-26 08:46:49 |只看作者 |坛友微信交流群
  1. fileno(返回文件流所使用的文件描述词)
  2. 相关函数 open,fopen
  3. 表头文件 #include<stdio.h>
  4. 定义函数 int fileno(FILE * stream);
  5. 函数说明 fileno()用来取得参数stream指定的文件流所使用的文件描述词。
  6. 返回值 返回文件描述词。
  7. 范例
  8. 复制代码 代码如下:

  9. #include<stdio.h>
  10. main()
  11. {
  12. FILE * fp;
  13. int fd;
  14. fp=fopen(“/etc/passwd”,”r”);
  15. fd=fileno(fp);
  16. printf(“fd=%d/n”,fd);
  17. fclose(fp);
  18. }
  19. 执行 fd=3
复制代码

使用道具

8
ReneeBK 发表于 2015-11-26 08:47:28 |只看作者 |坛友微信交流群
  1. fputc(将一指定字符写入文件流中)
  2. 相关函数 fopen,fwrite,fscanf,putc
  3. 表头文件 #include<stdio.h>
  4. 定义函数 int fputc(int c,FILE * stream);
  5. 函数说明 fputc 会将参数c 转为unsigned char 后写入参数stream 指定的文件中。
  6. 返回值 fputc()会返回写入成功的字符,即参数c。若返回EOF则代表写入失败。
  7. 范例
  8. 复制代码 代码如下:

  9. #include<stdio.h>
  10. main()
  11. {
  12. FILE * fp;
  13. char a[26]=”abcdefghijklmnopqrstuvwxyz”;
  14. int i;
  15. fp= fopen(“noexist”,”w”);
  16. for(i=0;i<26;i++)
  17. fputc(a,fp);
  18. fclose(fp);
  19. }
复制代码

使用道具

9
ReneeBK 发表于 2015-11-26 08:48:37 |只看作者 |坛友微信交流群
  1. fputs(将一指定的字符串写入文件内)
  2. 相关函数 fopen,fwrite,fscanf,fputc,putc
  3. 表头文件 #include<stdio.h>
  4. 定义函数 int fputs(const char * s,FILE * stream);
  5. 函数说明 fputs()用来将参数s所指的字符串写入到参数stream所指的文件内。
  6. 返回值 若成功则返回写出的字符个数,返回EOF则表示有错误发生。
  7. 范例 请参考fgets()。
  8. fread(从文件流读取数据)
  9. 相关函数 fopen,fwrite,fseek,fscanf
  10. 表头文件 #include<stdio.h>
  11. 定义函数 size_t fread(void * ptr,size_t size,size_t nmemb,FILE * stream);
  12. 函数说明 fread()用来从文件流中读取数据。参数stream为已打开的文件指针,参数ptr 指向欲存放读取进来的数据空间,读取的字符数以参数size*nmemb来决定。Fread()会返回实际读取到的nmemb数目,如果此值比参数nmemb 来得小,则代表可能读到了文件尾或有错误发生,这时必须用feof()或ferror()来决定发生什么情况。
  13. 返回值 返回实际读取到的nmemb数目。
  14. 附加说明
  15. 范例
  16. 复制代码 代码如下:

  17. #include<stdio.h>
  18. #define nmemb 3
  19. struct test
  20. {
  21. char name[20];
  22. int size;
  23. }s[nmemb];
  24. int main(){
  25. FILE * stream;
  26. int i;
  27. stream = fopen(“/tmp/fwrite”,”r”);
  28. fread(s,sizeof(struct test),nmemb,stream);
  29. fclose(stream);
  30. for(i=0;i<nmemb;i++)
  31. printf(“name[%d]=%-20s:size[%d]=%d/n”,i,s.name,i,s.size);
  32. }
  33. 执行
  34. name[0]=Linux! size[0]=6
  35. name[1]=FreeBSD! size[1]=8
  36. name[2]=Windows2000 size[2]=11
复制代码

使用道具

10
ReneeBK 发表于 2015-11-26 08:58:27 |只看作者 |坛友微信交流群
  1. reopen(打开文件)
  2. 相关函数 fopen,fclose
  3. 表头文件 #include<stdio.h>
  4. 定义函数 FILE * freopen(const char * path,const char * mode,FILE * stream);
  5. 函数说明 参数path字符串包含欲打开的文件路径及文件名,参数mode请参考fopen()说明。参数stream为已打开的文件指针。Freopen()会将原stream所打开的文件流关闭,然后打开参数path的文件。
  6. 返回值 文件顺利打开后,指向该流的文件指针就会被返回。如果文件打开失败则返回NULL,并把错误代码存在errno 中。
  7. 范例
  8. 复制代码 代码如下:

  9. #include<stdio.h>
  10. main()
  11. {
  12. FILE * fp;
  13. fp=fopen(“/etc/passwd”,”r”);
  14. fp=freopen(“/etc/group”,”r”,fp);
  15. fclose(fp);
  16. }
复制代码

使用道具

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

本版微信群
加好友,备注jltj
拉您入交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-22 16:49