在什么情况下,sprintf会优先于stringstream? 有没有任何具体的例子,说明为什么在C++环境中,人们更喜欢SpReFF?此外,如果你在微软Word中工作,有没有理由更喜欢Seavtf到ySNPrTNF? < P>我在C++中一直使用 SpReFTF。我发现它更容易使用,特别是当我编写时间戳和其他特殊格式的字符串时。当然,您可以使用流修饰符来实现这一点,但是它太冗长了,您无法一目了然地看到代码实现了什么

在什么情况下,sprintf会优先于stringstream? 有没有任何具体的例子,说明为什么在C++环境中,人们更喜欢SpReFF?此外,如果你在微软Word中工作,有没有理由更喜欢Seavtf到ySNPrTNF? < P>我在C++中一直使用 SpReFTF。我发现它更容易使用,特别是当我编写时间戳和其他特殊格式的字符串时。当然,您可以使用流修饰符来实现这一点,但是它太冗长了,您无法一目了然地看到代码实现了什么,c++,visual-c++,C++,Visual C++,如果您绝对知道不会溢出缓冲区,并且需要尽可能快的写入速度,或者只是不希望额外的参数混乱,那么它比snprintf更可取 说到缓冲区,那是另一件事。。。通常,当我在堆栈上有一个缓冲区或者我正在写入内存中的现有缓冲区时,我会使用sprintf或其变体。我不一定想要分配和复制string对象的开销 并不是说我不使用ostringstream——我当然会使用(尽管我更经常使用istringstream,相反)。。。但是我更喜欢有两种工具来处理,而不是一种。 您不喜欢过流>代码> Stastf过流,但是在

如果您绝对知道不会溢出缓冲区,并且需要尽可能快的写入速度,或者只是不希望额外的参数混乱,那么它比snprintf更可取

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


并不是说我不使用
ostringstream
——我当然会使用(尽管我更经常使用
istringstream
,相反)。。。但是我更喜欢有两种工具来处理,而不是一种。

您不喜欢过流>代码> Stastf过流,但是在某些情况下,您可能会考虑<代码> SNPrTNFF < /C> >(或<代码> 对于已测量性能的适当性能密集型代码,
snprintf
可能会比使用流提高性能

此外,如果您已经维护了<代码> char []/Cuff>缓冲区,将其传递到C API中,则可以考虑使用<代码> SNPREMTF < /代码>。


重申一下,您应该总是更喜欢
\u snprintf
snprintf
而不是
sprintf
,因为它们有助于防止各种各样的安全问题和/或难以发现的bug。

无”是一个有效的答案吗?你可能想把你的
sprintf
vs
\snprintf
问题贴在一个C标签下面。可能吧,但你得测量一下。