繁体   English   中英

C ++:sprintf直接到ostream

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM