2012-07-20 68 views
2

我正在处理在我的产品中删除SECURITY CODING违规行为。我的代码有很多sprintf,覆盖率工具暗示我使用snprintf,但C++也有std::stringstream。这将是一个好主意,在地方使用std::stringstreamsnprintfsnprintf vs std :: stringstream

+0

它取决于你认为重要的东西,如果它是性能的,使用snprintf,如果它是类型安全的,则使用stringstream – 2012-07-20 07:23:17

回答

6

std::stringstream是类型安全的,使用运营商< <,使用内部缓冲区,C++的一部分,没有那么快为sprintf
sprintf不是类型安全的,不使用C++操作符,使用外部缓冲区,使用elipsis,它只能用于从C继承的POD类型,速度很快。