鱼C论坛

 找回密码
 立即注册
查看: 3167|回复: 2

[已解决]有关fgets函数

[复制链接]
发表于 2023-1-7 17:36:11 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
我想请问一下大佬们,fgets(str,1024,fp)里,如果fgets第一次调用读取的字符串比第二次调用读取的字符串要长,那么比第二次读取长的那一部分会保留在字符串str中吗?
最佳答案
2023-1-7 19:22:30
标准应该没有规定这种情况要不要保留后面的内容
也就是说,有可能有的编译器会保留后面的内容,有的编译器不保留后面的内容
不过从效率的角度考虑,应该没有哪个编译器会去覆盖后面的内容吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-1-7 19:22:30 | 显示全部楼层    本楼为最佳答案   
标准应该没有规定这种情况要不要保留后面的内容
也就是说,有可能有的编译器会保留后面的内容,有的编译器不保留后面的内容
不过从效率的角度考虑,应该没有哪个编译器会去覆盖后面的内容吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-1-7 19:33:55 | 显示全部楼层
The fgets function returns s if successful. If end-of-file is encountered and no characters have been read into the array, the contents of the array remain unchanged and a null pointer is returned. If a read error occurs during the operation, the members of the array have unspecified values and a null pointer is returned.
如果成功,fgets函数返回s。如果遇到文件结束符,并且数组中没有读入字符,则数组的内容保持不变,并返回空指针。如果在操作期间发生读错误,则数组成员具有未指定的值,并返回空指针。
这也没有说成功以后数组的状态是怎样的
标准文档就是这样,只说半句话,另外半句话你们自己去猜

https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3047.pdf
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-24 21:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表