wyxnogiveup 发表于 2023-1-7 17:36:11

有关fgets函数

我想请问一下大佬们,fgets(str,1024,fp)里,如果fgets第一次调用读取的字符串比第二次调用读取的字符串要长,那么比第二次读取长的那一部分会保留在字符串str中吗?

人造人 发表于 2023-1-7 19:22:30

标准应该没有规定这种情况要不要保留后面的内容
也就是说,有可能有的编译器会保留后面的内容,有的编译器不保留后面的内容
不过从效率的角度考虑,应该没有哪个编译器会去覆盖后面的内容吧

人造人 发表于 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
页: [1]
查看完整版本: 有关fgets函数