c语言中fgets的返回值类型??

 我来答
苏嘉爱娱乐
高粉答主

2019-10-13 · 各种八卦综艺娱乐影视剧齐分享
苏嘉爱娱乐
采纳数:90 获赞数:125185

向TA提问 私信TA
展开全部

1、如果成功,该函数返回相同的 str 参数。如果到达文件末尾或者没有读取到任何字符,str 的内容保持不变,并返回一个空指针。如果发生错误,返回一个空指针。

在读字符时遇到end-of-file,则eof指示器被设置,如果还没读入任何字符就遇到这种情况,则stream保持原来的内容,返回NULL;

2、如果发生读入错误,error指示器被设置,返回NULL,stream的值可能被改变。

如果文件中的该行,不足n-1个字符,则读完该行就结束。如若该行(包括最后一个换行符)的字符数超过n-1,则fgets只返回一个不完整的行,但是,缓冲区总是以NULL字符结尾,对fgets的下一次调用会继续读该行。

函数成功将返回stream,失败或读到文件结尾返回NULL。因此不能直接通过fgets的返回值来判断函数是否是出错而终止的,应该借助feof函数或者ferror函数来判断。

扩展资料

函数使用:

1、同时可以用作键盘输入:fgets(key,n,stdin)且还必须:key[strlen(key)]='\0'或者key[n-1]='\0'

2、还有种程序经常使用的方法:key[strlen(key-1)]=0x00;

3、与gets相比使用这个好处是:读取指定大小的数据,避免gets函数从stdin接收字符串而不检查它所复制的缓存的容积导致的缓存溢出问题。

参考资料来源:百度百科-fgets

MrA1r
2020-04-05
知道答主
回答量:6
采纳率:0%
帮助的人:2780
展开全部
char buf[100];
while(fgets(buf, 100, stdin)) {
printf("%s", buf);
}
注意:buf中会有\n
返回值为buf的指针。为空就表示EOF文件末尾。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
金色潜鸟
2017-10-29 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5546万
展开全部
fgets 是系统输入函数,从文件流读入一行字符串,含空格键等,函数原型是:
char * fgets ( char * str, int num, FILE * stream );
输入成功时,返回 char 型指针,指向 读入的字符串内容,含换行键(gets 类似,但不含换行键)。
输入失败时,返回 NULL。(与此同时 ,自动设置了 feof, ferror 的状态标志)。
追问
那怎么才算输入错误,能具体打出来吗?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
White_MouseYBZ
2017-10-29 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6389万
展开全部
是char *型。
追问
谢谢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式