C中puts函数的返回值

问题描述 投票:0回答:1

我正在学习函数和返回值,我知道函数“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 return printf puts
1个回答
1
投票

C 标准(C99 第 7.19.7.10 段)也描述了 C 标准库的某些方面,其中指出:

如果发生写入错误,

puts
函数将返回
EOF
;否则它返回一个非负值。

因此,由具体的库实现来选择返回什么。只要该值不为负数,就表示调用成功。符合要求的 C 库实现可以返回

0
12345
、打印的字符数或任意随机非负整数。

测试成功的正确方法是:

if (puts(...) != EOF) {...}
// or
if (puts(...) < 0) {...}
© www.soinside.com 2019 - 2024. All rights reserved.