c++ - C++ / Visual Studio - 如何输出到测试输出窗口?
问题描述
我知道 Visual Studio 中的记录器,即:
Logger::WriteMessage("foo");
这对测试代码很有效,对应用程序内部的代码不太实用。因此,我正在寻找一种标准解决方案来重定向代码中的标准输出消息。
解决方案
可以重新分配 std-out 中的流,例如:
// REDIRECT STD STREAM
streambuf * backup;
backup = cout.rdbuf();
stringstream ss;
cout.rdbuf(ss.rdbuf());
// DO SOMETHING
cout << "foo\n";
// PRINT STREAM TO LOGGER
Logger::WriteMessage(ss.str().c_str());
// ASSIGN COUT BACK TO STDOUT
cout.rdbuf(backup);
推荐阅读
- javascript - React 组件 JS 中的去抖动
- html - 首次加载或刷新后视频未播放
- python - Python:如何在打印函数中打印元组的单个元素
- java - 打印一条消息,说明元素不存在于 catch 块中,硒
- python - 尝试在 kubernetes 中启动 Airflow 1.10.6 时出现错误 `ValueError: Unable to configure handler 'processor': expected token ':', got '}'`
- c# - 从 azure 检索数据时,列表视图未显示我的结果
- react-native - React Native 我的删除按钮不起作用
- webview2 - WebView2 (2020/06) -> DOM 在哪里?
- java - 提示的水平选择器
- javascript - 我如何/在哪里可以检查 JS 方法的内部代码?