如何在 C++ 中重载/覆盖 printf 以使以下内容为真:
打印到 STDOUT 的每一行都以我选择的字符开头或结尾。
对 printf 的调用不会被掩盖——也就是说,我需要能够调用 printf 并修改每一行。我不想叫“myPrintf”或类似的东西。
背景
我正在拼命地尝试构建和查看使用 *nix 系统中的 DXGI API 的程序的标准文本输出。我通过我的 Windows 系统上的 SSH 服务器、Jenkins 和 Jenkins CLI 的组合来运行它。
问题是詹金斯,当它给我构建的输出时,并没有以可编写脚本的方式标记我的程序的输出 - 即,它与我的其他构建步骤的输出以及一般詹金斯一样乱码输出。
我希望能够以某种方式用一些已知的字符集标记程序输出的每一行 - 这将允许我通过 grep 管道输出我的命令并获取我的程序的实际日志。通过保持 printf 调用不受干扰,我还可以使用宏定义来切换此调试输出。
编辑
我愿意接受其他建议 - 以某种方式标记我的可执行文件的输出绝对也是一种选择,但它需要使用适用于Windows服务器的功能来工作。
基本上,我已经到了可以在我的 *nix 机器上键入“make test”的地步,它会构建并给我(当前模糊的)测试输出,就好像它是本地的一样,但编译和执行实际上是远程发生的. 这非常棒——对我来说最后一步是消除测试输出的模糊性。