当前位置:   article > 正文

文件操作第四节(格式化读写函数(fprintf()和fscanf()))

格式化读写函数
三.格式化读写函数(fprintf()和fscanf())
函数调用:

fprintf ( 文件指针,格式字符串,输出表列);

fscanf  ( 文件指针,格式字符串,输入表列);

函数功能:

从磁盘文件中按格式读入或输出字符。

例如:

fprintf(fp, "%d,%6.2f", i, t);

fscanf (fp, "%d,%f", &i, &t);

顺序读写:

位置指针按字节位置顺序移动。

随机读写:

读写完上一个字符(字节)后,并不一定要

读写其后续的字符(字节),而可以读些文

件中任意位置上所需要的字符(字节)。

fseek函数(一般用于二进制文件)

函数功能:

改变文件的位置指针

函数调用形式:

fseek(文件类型指针,位移量,起始点)

起始点:

文件开头           SEEK_SET      0

文件当前位置     SEEK_CUR     1

文件末尾           SEEK_END     2

位移量:以起始点为基点,向前移动的字节数。
fseek(fp,100L,0);
将位置指针移到离文件头100个字节处
fseek(fp,50L, 1);
将位置指针移到离当前位置50个字节处
fseek(fp,50L, 2);
将位置指针从文件末尾处向后退50个字节
fseek(fp,i*sizeof(struct stu),0);
将位置指针移到离文件头i*sizeof(struct stu)这个距离处。
例子:
在学生文件stu_list中读出第二个学生的数据。

 

  1. #if 0
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. struct student
  5. {
  6. char name[10];
  7. int num;
  8. int age;
  9. char addr[15];
  10. }boy;
  11. void main()
  12. {
  13. FILE *fp;
  14. int i=1; // 用于定位第 i 个结构
  15. if( !(fp = fopen("student-list", "r")))
  16. {
  17. printf("Cannot open the file!\n");
  18. return;
  19. }
  20. rewind(fp);
  21. fseek(fp, i*sizeof(struct student), 0);
  22. fread(&boy, sizeof(struct student), 1, fp);
  23. printf("name\tnumber age addr\n");
  24. printf("%s\t%5d %7d %s\n", boy.name, boy.num, boy.age, boy.addr);
  25. system("pause");
  26. }
  27. #endif
函数作用:

得到流式文件中的当前位置,用相对于文件开

头的位移量来表示。

返回值:

返回当前位置,出错时返回-1L。

应用举例:

i = ftell(fp);

if(i == -1L)  printf(“error\n”);

ferror函数
调用形式:

ferror(fp);

返回值:

返回0,表示未出错;返回非0,表示出错。

注意:

在调用一个输入输出函数后立即检查ferror函

数的值,否则信息会丢失。在执行fopen函数

时,ferror函数的初始值自动置为0。

clearerr函数
调用形式:

clearerr(fp);

函数作用:

使文件错误标志和文件结束标志置为0。

只要出现错误标志,就一直保留,直到对同一文件调用clearerr函数或rewind函数,或任何其他一个输入输出函数。

分类         函数名       功能                             

打开文件   fopen()        打开文件         

关闭文件   fclose()        关闭文件

文件定位   fseek()      改变文件位置指针的位置

          rewind()     使文件位置指针重新至于文件开头

          ftell()       返回文件位置指针的当前值

文件状态   feof()       若到文件末尾,函数值为真

          ferror()      若对文件操作出错,函数值为真

          clearerr()    使ferror和feof()函数值置零

分类                  函数名       功能                             

文件读写    fgetc(),getc()从指定文件取得一个字符         

           fputc(),putc()把字符输出到指定文件

           fgets()从指定文件读取字符串

           fputs()把字符串输出到指定文件

           getw()从指定文件读取一个字(int型)

           putw()把一个字输出到指定文件

           fread()从指定文件中读取数据项

           fwrite()把数据项写到指定文件中

           fscanf()从指定文件按格式输入数据

           fprintf()按指定格式将数据写到指定文件中

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/852569
推荐阅读
相关标签
  

闽ICP备14008679号