[英]The use of backspace character at the end of the string
退格轉義字符 '\b' 用於將 cursor 帶回一個字符......所以它必須像我們鍵盤上的退格鍵一樣工作。
cout<<"Learn c++\b!";
這給出了正常的預期結果 - 學習 c+!
但是當使用 \b 作為最后一個字符時
cout<<"Learn c++!\b";
這 '!' 不擦除輸出——學c++!
相反,我必須使用
cout<<"Learn c++!\b \b";
得到輸出-Learn c++
誰能說出這種行為的原因..?
你的假設:
所以它必須像退格鍵一樣工作
是不正確的。 \b
將 cursor 向后移動一個字符。 它不會刪除任何字符。 在導致您觀察到的效果的交互式終端中。
std::cout << "Hello, world\b!\n";
首先打印Hello, world
,然后將 cursor 向左移動 1 步,然后打印!
並移動到新的一行,結果是Hello, worl!
.
std::cout << "Hello, world!\b\n";
這從打印Hello, world!
開始。 ,然后將 cursor 向左移動 1 步,然后移動到新的一行,結果是Hello, world!
.
正如問題評論已經提到的那樣,這種覆蓋效果只發生在終端中。 如果您將 output 保存到文件中,則包括\b
在內的所有字符都將按原樣保留。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.