说明:如果您有任何疑问或想咨询其他业务请拨打电话 400 685 0732
全网监测海量数据按需发布监测预警
实时把握舆情动态精准追溯信息源头
一个函数该如何使用?我们最先要了解的就是这个函数的语法以及具体的含义是什么,所以今天我们就来看一看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函数该如何使用的所有内容,学习函数最先就是学习函数的一些语法,以及这些参数的含义,只有这些弄懂了,在实际运用当中才会熟练的运用,如果大家还想了解更多与之有关的内容,欢迎关注我们文军营销的官网。
说明:如果您有任何疑问或想咨询其他业务请拨打电话 400 685 0732