【发布时间】:2023-03-09 02:38:01
【问题描述】:
假设我有一个包含长度为 10 的字符串的文件:
abcdefghij
并使用fgets() 逐行读取我的文本文件,缓冲区大小为 4。
我将不得不循环调用fgets() 以确保读取整行。
但是,在第一次调用时,它会读取前 3 个字符 (buffer size -1) 对吗?即使没有到达我的字符串的真正结尾,它是否还会在我的 4 字符缓冲区的最后一个位置附加一个空终止字符,或者在我的缓冲区末尾用 4 个字符填充它并且没有空终止字符?哪个会导致无法调用strlen()?
谢谢你:)
【问题讨论】:
-
了解这样一个简单问题的最佳方法是尝试一下;)
-
没有最好的方法将它写在标准库文档中。
-
由于文档中没有找到,写3行代码就知道了,不用在这里等答案了。