[英]c++: sprintf directly to ostream
有没有办法使sprintf将结果直接写入给定的ostream?
我需要这样做是因为我的代码每秒对sprintf
进行数千次调用,其中将缓冲区复制到ostream中:
while(..)
{
..
char buf[64];
sprintf(buf, ..)
oss << buf;
}
我不知道有什么办法,但是您肯定不需要它。
ostream
是专门为避免类似printf的格式而设计的 ,因此我相信可以将任何printf / sprintf格式输出重新设计为直接在ostream
。 只需使用<< <<重载操作符即可进行格式化。
不,C函数与stl容器没有共同点。
为什么不完全消除sprintf并将所有输出直接放入stringstream:
ss << " some string " << 99 << ...
stringstream具有与sprintf相同的格式化可能性,然后您准备好字符串:
ss.str()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.