当前位置:   article > 正文

文件操作函数——大全(简洁,全面,附代码演示)

文件操作函数

目录

1.各种文件操作函数/文件使用方式总览

2.scanf printf和文件操作函数的区别

3.fgetc fputc(字符)

例:统计给定文本文件名为filename中所有大小写英文字符的个数并返回(运用fgetc,附代码)

4.fgets fputs(行) 

5.fprintf fscanf (格式化)     

1.对比fprintf和printf格式:

2.对比fprintf与fscanf格式:

例:从已知格式的ASCLL文件filename中顺序读取id和name,返回读取信息的条数(运用fscanf,附代码)

6.fread fwrite(二进制)

7.sscanf sprintf(字符串)

8.fseek(调节文件指针位置,3种)

9.ftell(返回位移值)

10.rewind(返回起始位置)


1.各种文件操作函数/文件使用方式总览


2.scanf printf和文件操作函数的区别

PS:可以将键盘和屏幕理解成接收的文件


3.fgetc fputc(字符)

fgetc特性:

  1. fgetc读取一次后,指针会跳着走,自动到下一个
  2. fgetc读到的不是Ascall码值,会返回EOF

例:统计给定文本文件名为filename中所有大小写英文字符的个数并返回(运用fgetc,附代码)

  1. 统计给定文本文件名为filename中所有大小写英文字符的个数并返回
  2. long fileLengthOf(char filename[])
  3. {
  4. char ch;
  5. long num=0;
  6. FILE*fp=fopen(filename,"r");
  7. if(fp==NULL)
  8. {
  9. return -1;
  10. }
  11. while(!feof(fp))//这里默认文件夹不为空,相关知识点见我主页feof博客
  12. {
  13. ch=fgetc(fp);
  14. if(ch>='a'&&ch<='z'||ch>='A'&&ch<='Z')
  15. {
  16. num++;
  17. }
  18. }
  19. fclose(fp);
  20. fp=NULL;
  21. return num;
  22. }

4.fgets fputs(行) 

写入:

读取:

fputs特性:

  •   写文件时会一行一行写,并且自动换行(手动加\n)

fgets特性:

  •   读的时候会放到一个字符数组里,再通过字符数组打印

  •   读取的数据默认带\0,也就是默认少一位

  •  读取的数据,当一行结束仍然不够数,则不会再读下一行(解决方法:再读取一次


5.fprintf fscanf (格式化)     

特点:

  • fscanf用于读取字符串数据流时,遇到空白字符(空格' '; 制表符'\t'; 新行符'\n')就停止,若要读取完整的一行数据,可以使用格式控制("%[^\n]%*c")。
  • (与其他文件函数对比)写入时目标指针fp前面

1.对比fprintf和printf格式:

2.对比fprintf与fscanf格式:

例:从已知格式的ASCLL文件filename中顺序读取id和name,返回读取信息的条数(运用fscanf,附代码)

  1. 从已知格式的ASCLL文件filename中顺序读取id和name,返回读取信息的条数
  2. int funFile0(char*filename,int id[],char name[][32])
  3. {
  4. int i,num;
  5. FILE *fp=fopen(filename,"r");
  6. //FILE *fp=fopen(filename,"w");写入
  7. if(fp==NULL)
  8. return -1;
  9. else
  10. {
  11. fscanf(fp,"%d",&num);//当写时,此段删除
  12. for(i=0;i<num;i++)
  13. {
  14. fscanf(fp,"%d%s",id+i,name[i]);
  15. //fprint(fp,"%d%s",id[i],name[i]);写入
  16. }
  17. }
  18. fclose(fp);
  19. fp=NULL;
  20. return num;
  21. }

6.fread fwrite(二进制)


7.sscanf sprintf(字符串)

实例:利用sscanf和sprintf进行结构体成员与字符串的转换

scanf/fscanf/sscanf与printf/fprintf/sprintf的对比:


8.fseek(调节文件指针位置,3种)

fseek函数作用:调节文件指针位置

int origin的位置可以设置三种:

  • SEEK_SET:文件开头
  • SEEK_CUR:文件指针现在的位置
  • SEEK_END:文件结尾

 例子:    目的:读取到d          方法:从头向后偏移+3/从尾向头偏移-3


9.ftell(返回位移值)


10.rewind(返回起始位置)

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/Li_阴宅/article/detail/789634
推荐阅读
相关标签
  

闽ICP备14008679号