gpt4 book ai didi

stringstream - 使 fprintf 写入 std::stringstream

转载 作者:行者123 更新时间:2023-12-02 03:47:23 27 4
gpt4 key购买 nike

函数 fprintf 写入 FILE*。我有一个写入 stringstream 的 debugPrint 函数。我不想更改我的功能,因为它在很多地方都被使用,而且它会破坏代码。

如何将字符串流传递给 fprintf?

更新:我可以将 stringstream 包装到 FILE 中然后再打开吗?

最佳答案

您不能将 ostream“传递”给 fprintf。 FILE 结构依赖于平台。

这可能不是最好的方法,但是您可以创建一个邪恶的宏:

#undef fprintf
#define fprintf my_fprintf

您可以创建两个 my_fprintfs,一个接受 FILE*,另一个接受 std::stringstream& 作为参数。

直接调用my_fprintf就可以避开这个宏,但是必须修改调用处。

您不能以可移植的方式“在 FILE* 中包装字符串流”,但是有一些系统特定的方法。如果那是你所追求的,那么 Linux 例如有 fopencookie() ,它接受函数指针来读/写函数。然后您可以创建包装 std::stringstream 的函数。

关于stringstream - 使 fprintf 写入 std::stringstream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16078387/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com