您好,
这是我想要实现的目标。我希望有一个流,默认输出到std::cout
,但也可以使用std::cerr
,这样可以覆盖最后输出的行。
我知道这对findp不起作用,因为std :: cout不可寻找。我绕过这种方式的方法是输出'\b'
个字符。我也知道这个解决方案不允许返回一行,那很好。
我设法get a solution但它并不好(顺便说一句,链接中给出的版本与真实控制台一起工作,即使它不适用于ideone - ideone显示\b
空白字符)。我想要像标准流一样的界面。类似的东西:
Logger log(std::cerr);
log << "hello" << 1 << erase << "hi" << std::endl;
这应在"hello1\b\b\b\b\b\bhi"
上输出std::cerr
,用户只会看到"hi"
。
我设法通过继承std::ostream
和std::streambuf
来获得something close,但它没有编译(请参阅链接)。
这个问题的解决方案是什么? 请注意,我并不特别重视我的解决方案。任何解决方案都让我实现了#stream;&#34;流的方式&#34;没关系。