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

前端之家收集整理的这篇文章主要介绍了c – 如何将ostream对象重定向到临时缓冲区?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个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&C++相关文章