有没有办法让sprintf将结果直接写入给定的ostream?
我需要这个,因为我的代码每秒都会向sprintf
进行数千次调用,其中缓冲区被复制到ostream中:
while(..)
{
..
char buf[64];
sprintf(buf, ..)
oss << buf;
}
答案 0 :(得分:2)
我不知道有任何办法,但你肯定不需要它。
ostream
专门用于避免类似printf的格式,所以我相信任何printf / sprintf格式输出都可以重新设计,直接在ostream
上运行。只需使用<< overloaded operato r进行格式化。
答案 1 :(得分:2)
不,C函数与stl容器没有共同之处。
为什么不彻底消除sprintf并将所有输出直接放到stringstream:
ss << " some string " << 99 << ...
stringstream具有sprintf的格式化可能性,然后你就可以准备好字符串:
ss.str()