C中的sprintf和printf有啥区别? [复制]
Posted
技术标签:
【中文标题】C中的sprintf和printf有啥区别? [复制]【英文标题】:What is the difference between sprintf and printf in C? [duplicate]C中的sprintf和printf有什么区别? [复制] 【发布时间】:2017-04-18 08:43:32 【问题描述】:我正在研究 CS50 的 pset4,并且对在 CS50 的恢复.c 问题中在哪里使用 sprintf 感到非常困惑。我想知道在哪里以及在哪里准确使用 sprintf 和 printf。
【问题讨论】:
阅读手册页。 嗯:他们第一个参数的类型不同。 Google 是你的朋友,你知道的。 "...在哪里准确使用 ..":仅在函数执行您需要在该位置执行的操作的地方。如果它无论如何都不能做你想让它做的事情,那么使用它是没有意义的,所以在这种情况下,使用另一个。 (这个建议可以扩展到适用于所有函数,最后有一个包罗万象:如果没有这样的函数,那就写它。) @RadLexus:如果没有这个功能,那么确认这个功能的存在是有意义的;如果是,那么确定为什么还没有人写它;如果没有充分的理由(这极不可能!),那就写吧。 【参考方案1】:sprintf
格式化字符串并将其写入第一个参数指定的字符数组中(假设空间足够); printf
格式化字符串并将其写入stdout
。
例如:您可以使用sprintf
:
char buffer[100];
sprintf(buffer, "My name is %s and I am %d years old", "John Doe", 25);
// buffer now contains "My name is John Doe and I am 25 years old"
但是,如果要将格式化字符串写入标准输出流,则需要使用printf
(或fprintf
,stdout
作为第一个参数):
printf("My name is %s and I am %d years old", "John Doe", 25);
// the text "My name is John Doe and I am 25 years old" gets printed to the stdout stream
【讨论】:
哇,谢谢伙计,它真的帮助了我。 其实没有。它使您免于学习如何进行基础研究。啧啧。以上是关于C中的sprintf和printf有啥区别? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
c语言中,printf,print,input,都表示输出,他们有啥区别
Qt中的QString::sprintf和QString::arg有啥区别?