标准函数fgets(s,n,f)的功能是?

长度是不超过n-1 还是 长度为n-1 呢?

第1个回答  2010-10-11
从流中读一行或指定个字符,

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

从流中读取n-1个字符,除非读完一行,参数s是来接收字符串,如果成功则返回s的指针,否则返回NULL。

形参注释:*string结果数据的首地址;n-1:一次读入数据块的长度,其默认值为1k,即1024;stream文件指针

说得简单一点就是从f这个文件输入流中读取n-1个字符,存到s中。

如果一行的字符数小于n-1,那么就是一行的字符数,所以应该理解为不超过n-1,如果一行的长度大于n-1,就是n-1个字符本回答被提问者采纳
第2个回答  2010-10-11
给你个例子:
#include <stdio.h>
void main()
{
FILE *stream;
char buf[128];
stream=fopen("time.text","r");//打开文件(保证有该文件存在)
fgets(buf,128,stream);//读取字符
printf("%s\n",buf);
fclose(stream);
}
如上例可见:
fgets(s,n,f)中的s为获得数据地址,n为获得数据的总字符数,f为需要读出字符的文件指针。上面长度为N,以数组来说,0开头,所以读取到buf[n-1]处。
相似回答