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(或fprintfstdout作为第一个参数):

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有啥区别? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

sprintf与printf的不同点是啥?

c语言中,printf,print,input,都表示输出,他们有啥区别

c语言sprintf是啥意思,和printf神马区别

Qt中的QString::sprintf和QString::arg有啥区别?

C语言printf()sprintf()vsprintf() 的区别与联系

printf,sprintf,vsprintf 区别