C 为什么使用printf(“mystring\n”而不是puts(“mystring”)呢?

C 为什么使用printf(“mystring\n”而不是puts(“mystring”)呢?,c,printf,output,stdio,puts,C,Printf,Output,Stdio,Puts,我在代码中看到过,使用printf(例如printf(“helloworld!\n”)只显示一个没有任何格式的普通字符串。 为什么不直接使用puts(“Hello World”)呢?printf()通常是首选的选择,因为它功能更强大,让程序员可以更好地控制输出。当您以后要更新代码时,您可能会使用变量。puts()不格式化变量,但printf()格式化变量。而且,put()总是添加新行,因此如果您不想换行,则需要切换到printf()。基本上,printf()允许您更长时间地维护代码。如果不需要格

我在代码中看到过,使用printf(例如printf(“helloworld!\n”)只显示一个没有任何格式的普通字符串。
为什么不直接使用puts(“Hello World”)呢?

printf()
通常是首选的选择,因为它功能更强大,让程序员可以更好地控制输出。

当您以后要更新代码时,您可能会使用变量。
puts()
不格式化变量,但
printf()
格式化变量。而且,
put()
总是添加新行,因此如果您不想换行,则需要切换到
printf()
。基本上,
printf()
允许您更长时间地维护代码。

如果不需要格式化/打印变量,则应使用puts
fputs
。以下可能会出现问题:

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

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

此外,如果要打印包含“%”的内容,建议使用
put

为什么要使用
printf(“mystring\n”)
而不仅仅是
put(“mystring”)

注意:有理由不使用
printf()
,比如
'%'
字符的外观,但OP似乎想知道
printf(文本行)
的理由

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


示例2:
put()(“您好,%s\n”,name)
?请参阅,因为人们不知道
put
put()
变体使用的内存少了一个字节。将
put
更改为
printf
并不难。当您维护数千行旧代码和多个文件时,它会变得更加复杂。