为什么 C puts 会追加一个换行符而 fputs 不会?
Why does C puts appends a newline while fputs doesn't?
C 标准提供了两个函数,puts
and fputs
,其中 puts(s)
的行为与 fputs(s, stdout)
相同,只是它额外附加了一个换行符:
The puts()
function shall write the string pointed to by s
, followed by a <newline>
, to the standard output stream stdout
.
puts
和 fputs
之间存在这种行为差异的原因是什么?
puts
函数专门写入 stdout
,通常是控制台。因为控制台输出通常是行缓冲的,所以不必显式向要打印的字符串添加换行符很方便。
fputs
函数可以写入任何给定的 FILE
对象,而不仅仅是 stdout
,因此通过不自动添加换行符,它使函数在一般情况下更加灵活。
C 标准提供了两个函数,puts
and fputs
,其中 puts(s)
的行为与 fputs(s, stdout)
相同,只是它额外附加了一个换行符:
The
puts()
function shall write the string pointed to bys
, followed by a<newline>
, to the standard output streamstdout
.
puts
和 fputs
之间存在这种行为差异的原因是什么?
puts
函数专门写入 stdout
,通常是控制台。因为控制台输出通常是行缓冲的,所以不必显式向要打印的字符串添加换行符很方便。
fputs
函数可以写入任何给定的 FILE
对象,而不仅仅是 stdout
,因此通过不自动添加换行符,它使函数在一般情况下更加灵活。