小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
前言
每天一小步,成功一大步。大家好,我是程序猿小白 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);//获取文件的长度
结语
以上就是读取文本文件和二进制文件所用到的一些函数,以及使用方式,希望对读者有所帮助。如有错误,欢迎掘友们批评指正。