【发布时间】:2013-10-07 18:50:12
【问题描述】:
在我的应用程序中,我将从数据库中检索错误消息字符串。我想将数字替换为错误消息。错误消息将是一个 C 风格的字符串,如:
Message %d does not exist
或
Error reading from bus %d
理想情况下,我希望能够使用此语句执行 C 风格的 printf,并将我自己的数字代入其中。我知道我可以手动完成,但有没有更简单的方法可以像字符串一样使用它在普通的 printf 中?
【问题讨论】:
-
在 libc 中使用
sprintf()有什么问题? -
@yan 缓冲区溢出。最好至少使用
snprintf -
如何使用 sprintf 来做到这一点?假设我将文本读入变量 char *text="Message %d 不存在" 我可以使用它将文本打印到缓冲区,但是如何替换 %d?
-
@DavidBrown 我不是指
sprintf(),我指的是s*printf()系列函数。