【发布时间】:2020-05-17 13:59:09
【问题描述】:
C 标准提供了两个函数,puts 和 fputs,puts(s) 的行为与 fputs(s, stdout) 相同,只是它额外附加了一个换行符:
puts()函数应将s指向的字符串,后跟<newline>,写入标准输出流stdout。
puts 和 fputs 之间行为差异的原因是什么?
【问题讨论】:
-
可能是因为标准输出默认是行缓冲的,当它到达换行符时会打印。比手动刷新或添加新行更方便。
-
这主要是一个“这就是它在 70 年代后期的设计方式”的问题。
gets()和fgets()之间存在类似的差异。但是,出于可靠的安全原因,gets()不再是标准 C 的一部分,所以幸运的是,您并没有意识到这一点,最好保持这种状态。