C语言--保姆教学,文件读写(二)

206 阅读2分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

前言

 每天一小步,成功一大步。大家好,我是程序猿小白 GW_gw,很高兴能和大家一起学习每天小知识。

以下内容部分来自于网络,如有侵权,请联系我删除,本文仅用于学习交流,不用作任何商业用途。

摘要

本文主要讲述文本文件和二进制文件的读取操作

读取文件

读取文本文件

 fgetc(fp)   读取单个字符

fgetc()函数从fp指向的文件中读取一个字符并返回。

 fgets(buffer,n,fp)   读取n-1个字符

fgets()函数从fp指向的文件中读取n-1个字符。并把读取的字符串放入到缓冲区buffer中,在字符串的最后追加null字符串,表示终止。

如果遇到换行符或文件末尾EOF,则会返回读取到的字符串。即使用fgets只能读取一行。

读取二进制文件

  size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream)
  从给定流 stream 读取nmemb个size大小的数据到 ptr 所指向的内存块中。

ftell函数和fseek函数

 long int ftell(FILE *stream)

ftell函数返回位置标识符的当前值,有一个很重要的应用就是求文件的长度。(字节数)

在此之前先介绍一下fseek函数。

 int fseek(FILE *stream, long int offset, int whence)

stream是文件流。

offset是相对于whence的偏移量。

whence可取以下值,这里就介绍比较常用的。

  • SEEK_END 把文件指针移到文件末尾

  • SEEK_SET 把文件指针移到文件开头

  • SEEK_CUR 文件指针当前的位置

 fseek(fp,0,SEEK_END);
 int fileSize = ftell(fp);//获取文件的长度

结语

以上就是读取文本文件和二进制文件所用到的一些函数,以及使用方式,希望对读者有所帮助。如有错误,欢迎掘友们批评指正。