提问人:Shashaank 提问时间:11/10/2023 最后编辑:Marco BonelliShashaank 更新时间:11/10/2023 访问量:88
C语言中puts函数的返回值
The return value of puts function in C
问:
我正在学习函数和返回值,我知道该函数返回一个非负整数(我假设打印的字符数)或任何错误,但是它什么时候会返回零?我认为可以返回的最小数字是 1(默认情况下它打印换行符)。puts
EOF
puts
在下面附加的代码中。会回来,会回来.我想知道什么时候会返回零。puts
1
printf
0
puts
#include <stdio.h>
int main() {
printf("%d",puts(""));
puts("");
printf("%d",printf(""));
return 0;
}
答:
4赞
Marco Bonelli
11/10/2023
#1
C 标准(C99 第 7.19.7.10 段)也描述了 C 标准库的某些方面,它说:
如果发生写入错误,该函数将返回;否则,它将返回一个非负值。
puts
EOF
因此,由特定的库实现来准确选择要返回的值。只要该值不为负数,就表示调用成功。符合要求的 C 库实现可以返回 、 、 打印的字符数或任何随机非负整数。因此,程序员不应对特定的返回值做出假设。0
12345
那么,测试成功的正确方法是:
if (puts(...) != EOF) {...}
// or
if (puts(...) >= 0) {...}
如果上述测试通过(您输入正文),则字符串已正确打印。if
评论
0赞
Shashaank
11/10/2023
所以没有“特定”的返回值,我的意思是我不能事先知道返回值?
2赞
Marco Bonelli
11/10/2023
@Shashaank是的,没错。不应对返回值做出假设。
0赞
Shashaank
11/10/2023
哦,好的@MarcoBonelli谢谢:-)
上一个:函数返回值而不返回语句
下一个:点击按钮后如何返回特定的节点列表
评论
puts
puts("Foo")