有没有人有任何具体的例子,说明为什么在 C++ 环境中更喜欢 sprintf 而不是 stringstream?此外,如果您在 Microsoft 世界中工作,是否有任何理由更喜欢 sprintf 而非 _snprintf?
我sprintf一直在 C++ 中使用。我发现它更容易使用,特别是当我编写时间戳和其他特殊格式的字符串时。当然,你可以用流修饰符来做到这一点,但它是如此冗长,你无法一眼看出代码实现了什么。
_snprintf如果您绝对知道您不会溢出缓冲区,并且您需要尽可能快的写入或只是不希望额外的参数混乱,那么它会更可取。
说到缓冲区,那是另一回事......通常sprintf当我在堆栈上有一个缓冲区或者我正在写入内存中的现有缓冲区时,我会使用或其变体。我不一定想要分配和复制string对象的开销。
并不是说我不使用ostringstream——我当然会使用(尽管我更经常使用istringstream,相反)……但我更喜欢有两个工具可供我使用,而不是一个。
| 归档时间: |
|
| 查看次数: |
2337 次 |
| 最近记录: |