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')。
从文件结构体指针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')。
相关文章推荐
- php读取文件一行数据的函数fgets和fgetss
- shell命令一行一行读取文件数据
- Bash读取文件每次一行
- 从终端读取一行数据,fgets,gets,c++ string类定义的getline
- fread返回0或者不是期望的值,那么是否会读取到数据(如果数据没有读完的话),并改变了文件的指针位置?
- fseek fread 指定文件指针位置开始读取数据
- shell脚本中每次读取文件的一行
- 文件操作ofstream,open,close,ifstream,fin,依照行来读取数据, fstream,iosin iosout,fio.seekg(),文件写入和文件读写,文件拷贝和文件
- 为什么fgets()会读取文件最后一行两次?
- C++中怎样读取文件一行数据
- c写个linux的小程序,从bin文件中读取数据,打印结构体中的成员变量。
- PureBasic 打开一个一行有多个数据的文件并读取其中某个数据
- 从文件读取数据构建单链表,返回链表头指针
- 用 PHP 内置函数 fgets 读取文件一行内容
- 如何运用PHP函数fgets读取指针文件
- 读取每一行文件数据的方法bufferedreader
- C语言文件操作之--读取文件最后一行(通过fgets完成)
- 【转】C#如何读取txt文件中每一行每一个数据
- 文件操作ofstream,open,close,ifstream,fin,按照行来读取数据, fstream,iosin iosout,fio.seekg(),文件写入和文件读写,文件拷贝和文件
- shell脚本,每次读取文件的一行,逐行读取并处理