在c ++中将cin和cout从/重定向到一个字符串

时间:2012-01-19 15:58:20

标签: string redirect cout cin simulate

我有一个控制台应用程序的源代码,它使用cin和cout作为输入&输出

现在我希望将这些内容集成到我自己的程序中,然后“自动”执行操作,如生成/模拟“输入”运行时,并将输出捕获到字符串中以进一步执行。

基本上,对于输入我想做

之类的事情
myCinReplacement->AddInput("Hello\n");
myCinReplacement->AddInput("This is some random input\n");

然后如果程序的另一部分通过cin从输入缓冲区读取内容,它应该得到我添加的输入(或者等到添加某些内容,就像在实际控制台窗口中发生的那样)。 / p>

输出类似的东西,如果代码

cout << "foo" << "bar"; 

它应该将“foo”和“bar”附加到我可以在其他地方访问的字符串。

我对整个streambuf业务缺乏经验(从未在c ++中创建过控制台应用程序),到目前为止,似乎我必须重新实现一个完整的istream和ostream对象。但我几乎不相信没有更简单的解决方案吗?

0 个答案:

没有答案