我正在学习函数和返回值,我知道函数“puts”返回一个非负整数(我假设读取的字符数)或任何错误的 EOF,但是什么时候它会返回零?我认为“puts”可以返回的最小数量是 1(默认情况下打印换行符)
在下面附加的代码中。 puts 将返回 1,“printf”将返回 0。我想知道“puts”何时返回 0。
#include <stdio.h>
int main() {
printf("%d",puts(""));
puts("");
printf("%d",printf(""));
return 0;
}
C 标准(C99 第 7.19.7.10 段)也描述了 C 标准库的某些方面,其中指出:
如果发生写入错误,
函数将返回puts
;否则它返回一个非负值。EOF
因此,由具体的库实现来选择返回什么。只要该值不为负数,就表示调用成功。符合要求的 C 库实现可以返回
0
、12345
、打印的字符数或任意随机非负整数。
测试成功的正确方法是:
if (puts(...) != EOF) {...}
// or
if (puts(...) < 0) {...}