输出到字符串的 cout 相当于什么?
我应该已经知道这一点了,但是... printf
与 sprintf
之间的关系就像 cout
与 ____
之间的关系一样吗?请举个例子。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
我应该已经知道这一点了,但是... printf
与 sprintf
之间的关系就像 cout
与 ____
之间的关系一样吗?请举个例子。
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(5)
听起来您正在寻找
std::ostringstream
。当然,C++ 流不使用像 C 的
printf()
类型函数那样的格式说明符;他们使用操纵器
。根据要求,示例:
It sounds like you are looking for
std::ostringstream
.Of course C++ streams don't use format-specifiers like C's
printf()
-type functions; they usemanipulators
.Example, as requested:
输出:
Output:
这是一个示例:
如果您想清除流以供重用,您可以执行
另请参阅 Boost 格式 库。
Here's an example:
If you want to clear the stream for reuse, you can do
Also look at the Boost Format library.
您可以使用它来创建类似 Boost 词法转换的东西:
使用中:
You can use this to create something like the Boost lexical cast:
In use:
您对cout的概念有一点误解。 cout 是一个流,运算符 <<是为任何流定义的。因此,您只需要另一个写入字符串的流即可输出数据。您可以使用标准流(例如 std::ostringstream)或定义自己的流。
所以你的类比不是很准确,因为 cout 不是像 printf 和 sprintf 这样的函数
You have a little misunderstanding for the concept of cout. cout is a stream and the operator << is defined for any stream. So, you just need another stream that writes to string in order to output your data. You can use a standard stream like std::ostringstream or define your own one.
So your analogy is not very precise, since cout is not a function like printf and sprintf