【发布时间】:2011-06-05 08:49:51
【问题描述】:
谁能用简单的英语举例说明printf、fprintf和sprintf之间的区别?
它在什么流中?
在阅读“C 中的文件处理”时,我真的对这三者感到困惑。
【问题讨论】:
-
通过编写一些示例代码来试验它们。这是清楚地了解它们之间的区别的非常简单的方法。
-
首选 snprintf() 到 sprintf() 以避免愚蠢的缓冲区溢出。
-
首选流或 Boost 格式化程序以避免愚蠢的缓冲区溢出和讨厌的类型不安全错误
-
@Maxim,虽然你提出了一个有效的观点,但我会确保我的缓冲区不会溢出并将我的应用程序炸成碎片。如果流/增强格式化程序被证明会导致明显的瓶颈,我只会查看这些函数。 :)
-
@Maxim:重点是,没必要。我的代码不是瓶颈。 5m/sec 是交换发送多少消息,而不是我们能够处理多少。那么为什么要过早优化呢?