您的位置:首页 > 其它

fgets:从文件结构体指针stream中每次读取一行数据

2015-02-04 15:09 369 查看
fgets:
从文件结构体指针stream中读取数据,每次读取一行。读取的数据保存在buf指向的字符数组中,每次最多读取bufsize-1个字符(第bufsize个字符赋'\0'),如果文件中的该行,不足bufsize个字符,则读完该行就结束。如若该行(包括最后一个换行符)的字符数超过bufsize-1,则fgets只返回一个不完整的行,但是,缓冲区总是以NULL字符结尾,对fgets的下一次调用会继续读该行。函数成功将返回buf,失败或读到文件结尾返回NULL。因此我们不能直接通过fgets的返回值来判断函数是否是出错而终止的,应该借助feof函数或者ferror函数来判断。

函数

原型是char *fgets(char *s, int n, FILE *stream);

参数:





*s: 字符型指针,指向将存储到的数据地址。

*stream: 指针数据,欲读取的流。n:整型数据,将从流中读取 n - 1 个字符。

功能:

文件指针stream中读取n-1个字符,存到以s为起始地址的空间里,直到读完一行,如果成功则返回s的指针,否则返回NULL。

例:

如果一个文件的当前位置的文本如下

Love ,I Have

但是,如果用 

fgets(str1,4,file1);

则执行后str1="Lov",读取了4-1=3个字符

而如果用 

fgets(str1,23,file1);

则执行str1="Love ,I Have",读取了一行(包括行尾的'\n',并自动加上字符串结束符'\0')。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: