【问题标题】:Why use printf("mystring\n") instead of just puts("mystring")? [closed]为什么使用 printf("mystring\n") 而不是 puts("mystring")? [关闭]
【发布时间】:2015-11-28 06:19:04
【问题描述】:

我在代码中看到了这一点,其中使用 printf 仅显示没有任何格式的普通字符串(例如 printf("Hello World!\n")。 为什么不直接使用 puts("Hello World") 呢?

【问题讨论】:

标签: c printf output stdio puts


【解决方案1】:

只要不需要格式化/打印变量,就应该使用putsfputs。以下会出现问题:

 printf("How many %s is the interest?\n");

特别是当要打印的字符串作为变量传递时,很难找到错误。

【讨论】:

    【解决方案2】:

    此外,如果您想打印带有“%”的内容,建议使用puts

    【讨论】:

      【解决方案3】:

      printf() 通常是首选的替代方案,仅仅是因为它更强大,并且让程序员可以更好地控制他们的输出。

      【讨论】:

        【解决方案4】:

        当您想在以后更新代码时,您可能会使用变量。 puts() 不会格式化变量,但 printf() 会。此外,puts() 总是添加新行,所以如果你不想换行,那么你会想要切换到printf()。基本上,printf() 可以让您更长时间地维护代码。

        【讨论】:

        • puts改成printf并不难。
        • 当您维护数千行遗留代码和多个文件时,它会变得更加复杂。
        【解决方案5】:

        为什么使用printf("mystring\n") 而不仅仅是puts("mystring")

        注意:使用printf() 是有原因的,例如'%' 字符的外观,但OP 似乎想要 printf(line_of_text) 的原因。

        示例 1:在已使用 printf()puts() 的嵌入式应用程序(代码空间有限)中,可能需要额外的程序空间。

        示例 2:puts() 的输出附加了一个 '\n'。这种行为抓住了忘记这一点并使用puts("mystring\n") 的程序员。使用 printf("mystring\n") 是明确的。使用fputs("mystring\n", stdout) 会更好。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-03-13
          • 2019-06-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-09-08
          • 2012-05-23
          • 2012-11-28
          相关资源
          最近更新 更多