2010-12-08 106 views
5

是否可以更改用“cout”打印的文本?我想让它显示当前的百分比,而不必为每个百分比设置一个新行。这可能吗?C++从“cout”更改输出

+0

cout不应该是控制台的摘要,尽管大多数终端都会很乐意正确地解释回车符。 – lijie 2010-12-08 14:41:07

+0

什么是控制台呢? – nebkat 2010-12-08 15:05:55

回答

11

这个工作对我来说:

std::cout << "1111"; 
std::cout << "\r"; 
std::cout << "2222"; 

\r是一个回车符号。将“光标”放回到行首。您可以使用\b字符。这是退格。打印时,它会返回一个字符。

1

一般来说这是不可能的。 (想象一下,cout的输出是直接送到打印机的,你如何指示它将最后一行“取消打印”?)cout是一个输出流,它不会假定输出发送到哪个媒体,或者关于该媒体的能力。具体的技巧可以在某些情况下达到你想要的效果,但在其他情况下会失败。如果你想要比直接输出纯文本更动态的东西,可能cout不是正确的工具。

0

你绝对不会从cout得到的一件事是终端线的长度。由于这可以改变,你可能会使用太长的行,(使用'\ r')每次更新都会导致打印新行。如果你想使用特定的平台,那么使用特定于平台的功能来获取终端大小(请注意,根本不可能连接到任何终端,例如重定向到文件)。