gpt4 book ai didi

c - 为什么 printf 有返回值?

转载 作者:太空狗 更新时间:2023-10-29 16:37:39 34 4
gpt4 key购买 nike

我知道 printf 返回负错误或成功打印的字符数。检查此返回值的唯一原因是程序的执行是否以某种方式取决于 printf 状态。但是我想不出这个返回值有用的场景。例如,我从未检查过 printf 函数的返回值。

printf 的返回状态在哪些场景下有用?

最佳答案

printf 的返回值至少有两种用法:

  1. 检查错误。当您的输出是交互式的或纯信息性的时,这很少是重要的,但是对于处理来自 stdio 或文件的文本并将结果写入 stdout 的程序,了解错误(例如磁盘已满、管道关闭或丢失)是很重要的网络连接)阻止了整个输出被写入。如果在输出完成后源文件将被输出删除/替换,这一点尤其重要。但是,由于缓冲,检查 printf 本身的结果通常没有帮助。在写入最后一个输出并刷新后,您需要检查 ferror(stdout) 以获得是否发生任何写入错误的可靠指示。另一方面,检查 printf 的返回值可以让您及早检测到故障,这样您就不会浪费时间在第一行已经失败的情况下尝试编写数百万行,因此它可能是一个非常有用的检查;它本身并不足以进行检查。

  2. 如果输出的字符数不明显,你可能想知道写了多少个字符。这个数字的天真用法是排列列,但假设字符在其视觉呈现中具有固定宽度是相当过时的。不过,如果您正在格式化源代码,这可能有意义。另一个类似的用法(不确定这是过时还是过时)是在文件中写入固定宽度的字段。例如,如果您的字段是 80 个字节,而 printf 返回 52,则您需要再写入 28 个填充字节来完成该字段。

关于c - 为什么 printf 有返回值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13535557/

34 4 0
文章推荐: c - 我是否可以通过将变量设为静态来提高性能?
文章推荐: android - Geocoder 在真实设备上返回空列表
文章推荐: html - 使用 CSS 自定义 HTML