C语言文件操作,c语言提供了命令用来实现文件包含的操作

  C语言文件操作,c语言提供了命令用来实现文件包含的操作

  //从流中获取字符串。从流中获取字符串。

  char *fgets(char *string,int n,FILE * stream);

  //将字符串写入流。向流中写入一个字符串。

  int fputs(const char *string,FILE * stream);

  用fgets函数读取一行:

  int main()

  char buff[100]={ 0 };

  FILE* pf=fopen(test.txt , r );

  if (pf==NULL)

  返回0;

  //读取文件

  fgets(buff,100,pf);

  printf(%s ,buff);//注意buff本身有一个换行符(文件末尾有一个换行符)

  //打开成功,读取并关闭文件。

  fclose(pf);

  pf==NULL

  返回0;

  }

  读取一行并在显示器上打印出来,如图所示:

  用fputs函数写一行:

  int main()

  char buff[100]={ 0 };

  FILE* pf=fopen(test.txt , w );

  if (pf==NULL)

  返回0;

  //写入文件

  fputs(hello\n ,pf);

  fputs(word\n ,pf);

  //打开成功,写入文件,关闭文件

  fclose(pf);

  pf=NULL

  返回0;

  }

  用fputs在文件中写入一行:如下所示:

  Fgets和fputs也可以操作键盘和屏幕。

  输入键盘abcd,进入屏幕打印abcd。

  FSF和fprintf

  FSF格式输入功能适用于所有输入流。

  fprintf打印格式功能适用于所有输出流。

  简单对比一下scanf和fscanf,printf和fprintf,用法非常相似。

  int scanf( const char *format [,argument].);

  int fscanf( FILE *stream,const char *format [,argument ].);

  int printf( const char *format [,argument].);

  int fprintf(文件*流,常量字符*格式[,参数].);

  Fprintf写文件

  结构S

  int n;

  浮动分数;

  char arr[10];

  int main()

  struct S s={ 100,3.14, ABC };

  FILE* pf=fopen(test.txt , w );

  if (pf==NULL)

  返回0;

  //以格式化的形式编写文件

  fprintf(pf, %d %f %s ,s.n,s.score,s . arr);

  fclose(pf);

  pf=NULL

  返回0;

  }

  FSF阅读文件

  结构S

  int n;

  浮动分数;

  char arr[10];

  int main()

  struct S s={ 100,3.14, ABC };

  FILE* pf=fopen(test.txt , w );

  if (pf==NULL)

  返回0;

  //以格式化的形式输入数据

  fscanf(pf, %d %f %s ,s.n,s.score,s . arr);

  fclose(pf);

  pf=NULL

  返回0;

  }

  当然,fscanf和fprintf函数也可以应用于标准iostream (stdin、stdout)。

  比较一组函数

  scanf/fscanf/sscanf

  ptintf/fprintf/sprintf

  Scanf/printf:是标准输入流/标准输出流的格式化输入/输出语句。

  Fscnaf/fprintf:所有输入流/所有输出流的格式化输入/输出语句。

  SSCANF/Sprintf: SSCANF从字符串中读取格式化数据。Sprintf是将格式化的数据输出(存储)到一个字符串中。

  红柱石和铁闪石

  Fread二进制输入功能适用于文件。

  Fwrite二进制输出函数适用于文件。

  size_t fwrite( const void *buffer,size_t size,size_t count,FILE * stream);

  size_t fread( void *buffer,size_t size,size_t count,FILE * stream);

  结构

  char name[20];

  int age

  双倍积分;

  int main()

  Struct s s s={ 张三,20,55.6 };

  FILE* pf=fopen(test.txt , WB );

  if (pf==NULL)

  返回0;

  //以二进制形式编写文件

  fwrite( s,sizeof(struct S),1,pf);

  fclose(pf);

  pf=NULL

  返回0;

  }

  Fread读取文件,fwrite写入文件。这两个函数的用法相似。

  二、文件的随机读写功能

  上面说的函数都是顺序读写函数,有时候我们需要从某个位置开始读写函数。以下功能可以实现其功能。

  Fseek函数

  根据文件指针的位置和偏移量。

  将文件指针移动到指定位置。

  int fseek( FILE *stream,long offset,int origin);

  //这三个参数指的是什么:pf偏移文件指针的当前位置

  int main()

  FILE* pf=fopen(test.txt , r );

  if (pf==NULL)

  返回0;

  //定位文件指针

  fseek(pf,2,SEEK _ CUR);//偏移量是2

  //读取文件

  int ch=fgetc(pf);

  prinf(%c\n ,ch);

  fclose(pf);

  pf=NULL

  返回0;

  }

  如图,从文件指针当前位置A的前面偏移2,打印c。

  搜索_当前

  文件指针的当前位置(文件指针的当前位置)

  SEEK_END(文件的结束位置)

  文件结尾

  SEEK_SET(文件开始位置)

  文件开头

  三。对文档结尾的判断

  我们知道:EOF-文件结束的结尾。

  如果一个文件里什么都没有,我们打开文件时读到的是“-1”,在文件末尾有一个EOF。

  Feof函数

  记住:在读取一个文件的过程中,不能用feof函数的返回值直接决定文件是否完成。

  而是用来判断读取结束失败还是文件结束是由文件结束EOF引起的。

  文本文件是否读完,判断返回值是EOF还是NULL。

  比如fgetc判断是否是EOF fgets,判断返回值是否为NULL。

  判断二进制文件的读取结束,并判断返回值是否小于实际要读取的数目。

  例如,fread判断返回值是否小于要读取的实际数目。

  这就是我今天要讲的内容。本文介绍另一部分文件操作,然后最后一部分《C语言文件操作 一》,是我的笔记和上课的一些体会。

  希望对大家有帮助!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • c语言调用退出函数 c语言退出整个程序怎么写
  • c语言中怎么给函数初始化 c语言的初始化语句
  • c语言编写函数计算平均值 c语言求平均函数
  • 详解c语言中的字符串数组是什么,详解c语言中的字符串数组结构,详解C语言中的字符串数组
  • 表达式求值c++实现,c语言实现表达式求值
  • 看懂c语言基本语法,C语言详解,C语言的基本语法详解
  • 用c语言实现快速排序算法,排序算法设计与实现快速排序C语言,C语言实现快速排序算法实例
  • 深入解析c语言中函数指针的定义与使用方法,深入解析c语言中函数指针的定义与使用情况,深入解析C语言中函数指针的定义与使用
  • 描述E-R图,E-R图举例,关于C语言中E-R图的详解
  • 折半查找法C语言,折半查找算法(算法设计题)
  • 折半查找法C语言,c语言折半法查找数据,C语言实现折半查找法(二分法)
  • 扫雷小游戏c++代码设计,c语言扫雷游戏源代码,C语言实现扫雷小游戏详细代码
  • 怎样统计程序代码行数,C语言统计行数,C#程序员统计自己的代码行数
  • 基于c语言的贪吃蛇游戏程序设计,用c语言编写贪吃蛇游戏程序,C语言实现简单的贪吃蛇游戏
  • 图的两种遍历算法,图的遍历算法代码c语言,Python算法之图的遍历
  • 留言与评论(共有 条评论)
       
    验证码: