gpt4 book ai didi

c++ - 如何将 ostream 对象重定向到临时缓冲区?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:07:37 25 4
gpt4 key购买 nike

我有一个 C++ 代码,它有很多接收 ostream 作为参数的函数。我想对这些函数进行单元测试,因为我必须在执行函数后验证 ostream 对象数据。我可以将输出流重定向到一个文件,但我想检查我是否可以创建一个临时缓冲区并将输出流重定向到该缓冲区并从该缓冲区读取。

最佳答案

您可以使用 std::stringstream 作为内存中的 std::ostream:

#include <iosfwd>
#include <sstream>
#include <cassert>

void my_func(std::ostream& out) {
out << "test";
}

int main() {
std::ostringstream buf;
my_func(buf);
assert(buf.str() == "test");
}

关于c++ - 如何将 ostream 对象重定向到临时缓冲区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7221700/

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