是否可以更改用“cout”打印的文本?我想让它显示某事物的当前百分比,而不必为每个百分比都有一个新行。这可能吗?
问问题
6356 次
3 回答
13
这对我有用:
std::cout << "1111";
std::cout << "\r";
std::cout << "2222";
\r
是一个回车符号。将“光标”放回行首。
或者,您可以使用\b
字符。这是退格。打印时它会返回一个字符。
于 2010-12-08T14:38:16.443 回答
2
一般来说,这是不可能的。(想象一下,输出cout
直接馈送到打印机。你将如何指示它“取消打印”最后一行?)cout
是一个输出流,它不假设输出发送到哪个介质,也不假设它的能力那个介质。在某些情况下,特定的技巧可以达到您想要的效果,但在其他情况下会失败。如果您想要比纯文本的直接输出更动态的东西,那么可能cout
不是正确的工具。
于 2010-12-08T15:48:06.413 回答
0
你绝对不会从 cout 得到的一件事是终端线长度。由于这可以更改,您可能会使用太长的行,这(使用 '\r')将导致每次更新都打印新行。如果您想使用特定平台,则使用特定于平台的函数来获取终端大小(请注意,您可能根本不会连接到任何终端,例如重定向到文件)。
于 2010-12-08T20:02:32.097 回答