c++ - 在什么情况下 sprintf 会优先于 stringstream?

标签 c++ visual-c++

有没有人有任何具体的例子来说明为什么在 C++ 环境中人们更喜欢 sprintf 而不是 stringstream?此外,如果您在 Microsoft 世界工作,有什么理由更喜欢 sprintf 而不是 _snprintf?

最佳答案

我在 C++ 中一直使用 sprintf。我发现它更易于使用,尤其是在我编写时间戳和其他特殊格式的字符串时。当然,你可以使用流修饰符来做到这一点,但它太冗长了,你无法一眼看出代码实现了什么。

如果您绝对知道您不会溢出缓冲区,并且您需要尽可能快的写入或者只是不希望额外的参数困惑,那么它优于 _snprintf

说到缓冲区,那是另一回事...通常,当我在堆栈上有缓冲区或正在写入内存中的现有缓冲区时,我会使用 sprintf 或其变体。我不一定想要分配和复制 string 对象的开销。

并不是说我不使用 ostringstream——我确实使用(尽管我更经常使用 istringstream,相反)...但我更喜欢拥有两种工具,而不是一种。

关于c++ - 在什么情况下 sprintf 会优先于 stringstream?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13149886/

相关文章:

c++ - 基于 OpenCV 边缘的物体检测 C++

c++ - 如何根据父对话框中设置的变量在子 MFC 对话框中显示值?

c++ - 使用定时器队列的调度器

c++ - 如何将 std::string 转换为 LPCSTR?

c++ - 使用数组作为数组元素时出错

c++ - 声明和修改结构体静态数组-CPP

c++ - 为 C 数学函数调用 MSVC 内置/内在函数

c++ - 缓冲区的套接字队列问题

c++ - C++套接字-客户端出现段错误(Linux)

C 字符串大小和数组