C++回车换行送入长字符串后跟一个较短的字符串
问题描述:
我有一个应用程序,我想用它打印状态消息。但是,有时会出现一个较短的状态消息按照较长的状态消息,这会导致以下情况:C++回车换行送入长字符串后跟一个较短的字符串
长消息:
this is the long status message which is longer than the short one
短消息:
This is the short status messagewhich is longer than the short one
//this one should end here ^
的代码我使用的是:
cout << StatusMessage << '\r';
我该如何克服这个问题并首先擦除打印新行之前的整行?最好有一个跨平台的解决方案,但现在我的工作在Windows
注:我已经尝试过覆盖与\b
或spaces
行,然而,这可能导致多行清洗从而消除了我的\r
方法的功能。
答
我会重复使用'\b'
(backspace)在您的情况下前输出的长度。这似乎是相当standardized:
cout << StatusMessage << '\r';
cout << std::string(StatusMessage.size(),'\b');
请澄清,与示例代码和它的输出中,当你试图使用空格 –
C++没有控制台的任何概念,你的问题是什么。如果你可移植性,我会寻找一个控制台库。 – NathanOliver