我正在寻找用stringstream替换一些snprintf调用。我需要确保输出是相同的。默认的stringstream格式与snprintf相同吗?
给出long l = some_input_var;
做
std::ostringstream str;
str << l;
return str.str();
和
buf str[24];
snprintf(str, 24, "%ld", l);
return std::string(str);
返回相同的字符串?
那么int
和"%d"
或double
和"%f"
呢?
在我的环境中禁止提升(不要问......) – AShelly
@AShelly好吧,不要问,但我会问这个任务的最终目的是为了避免不知道你是否有大的问题分配足够的缓冲区(或将您的输出切断)。我之前已经以某种方式处理了这个问题,可能会为你工作(懒得打字,如果这样做不会有用的话) – nhed
这不是问题 - 它与更多的事实有关,即海量代码库有几十个包含'intToString'类型函数的模块,一些基于snprintf,一些在stringstream上。我想巩固,但不想破坏事情。知道长度不是问题 - 它受到MAXINT或MAXLONG的限制。 – AShelly