400-685-0732 电话咨询定制营销方案
关注专业seo外包公司
SEO创新会
文军营销
大数据驱动  让营销不走弯路
首页  >   其它  >  fgets函数 linux中fgets函数怎么用

fgets函数 linux中fgets函数怎么用

一个函数该如何使用?我们最先要了解的就是这个函数的语法以及具体的含义是什么,所以今天我们就来看一看fgets函数在实际的运用过程当中是如何使用的,希望能给大家带来一定的帮助。

  fgets函数——linux中fgets函数如何理解

fgets函数是从输入流中读取一个字符串,它是遇到换行符,或者传输了限定的字符数量,或者遇到EOF文件尾就停止(它会把换行符也加到接收字符串里面)。fgets函数的原型是:

char*fgets(char*s,intn,FILE*stream);

函数参数说明:第一个参数是接收参数,用于接收输入文件流的字符串,第二个参数n是字符串传输长度限定参数,表示当接收了n-1个字符时停止写入,第三个参数是文件流(就是fopen函数返回的文件流),也可以是输入流stdin。使用这个函数需要include头文件。

fgets函数和scanf的%s参数的区别是:scanf接收输入字符串时,是遇到空白字符就停止,而且scanf无法限定接收字符串的长度。

  fgets函数如何用

fget函数的原型如下:char*fgets(char*buf,intn,FILE*fp)

功能:从文件流读取一行,送到缓冲区,使用时注意以下几点:

1.当遇到换行符或者缓冲区已满,fgets就会停止,返回读到的数据,值得注意的是不能用fgets读二进制文件,因为fgets会把二进制文件当成文本文件来处理,这势必会产生乱码。

2.每次调用,fgets都会把缓冲区的最后一个字符设为null,这意味着最后一个字符不能用来存放需要的数据,所以如果有一行,含有LINE_SIZE个字符(包括换行符),要想把这行读入缓冲区,请把参数n设为LINE_SIZE+1

3.由结论1可推出:给定参数n,fgets只能读取n-1个字符(包括换行符),如果有一行超过n-1个字符,那么fgets返回一个不完整的行,也就是说,只读取该行的前n-1个字符,但是,缓冲区总是以null字符结尾,对fgets的下一次调用会继续读该行。

用法举例:

读取一个文件并打印

FILE*fp=fopen(argv[1],”r”);

charbuf[200];

while(fgets(buf,200,fp)!=NULL){/*每行的字符不能超过199才能正常工作*/

printf(“%s”,buf);

}

注意打印不用使用printf(“%s/n”,buf),因为它会把换行符也读进去

以上就是fgets函数该如何使用的所有内容,学习函数最先就是学习函数的一些语法,以及这些参数的含义,只有这些弄懂了,在实际运用当中才会熟练的运用,如果大家还想了解更多与之有关的内容,欢迎关注我们文军营销的官网。