2016-12-28 81 views
0

我們可以將'\ n'字符添加到字符串中,以便在我們使用printf時可以轉到下一行。如何向前移動文本光標?

那麼,如何將文本光標向前移動一行呢? 就像我們使用'\ n'執行下一行一樣簡單。

例如,這是一個字符串「我躺在\moveforwardk K」

它應該是「我喜歡」我輸出的串使用printf時。

+1

如果沒有要移動的文本,則不能「前進」。你確定你不只是想要空格或製表符? – Carcigenicate

+1

根據你的編輯,你的意思是倒退?在你的例子中,你需要用'\ b'(退格字符)擦除'k',然後重新輸入'e'。 – Carcigenicate

+0

也許他想要的是回車'\ r',但我對他的問題有些困惑。而'\ r'可能不會在某些控制檯上帶來預期的結果。 – Gerhardh

回答

0

根據你的「我喜歡」的例子,我會假設你的意思是「向後」而不是「向前」。

據我所知,沒有超級簡單的方法來實現你想要做的事情。除非模擬按下鍵盤上的箭頭鍵,否則不能實際上以編程方式移動光標。假定您使用的控制檯支持移動光標。

我知道的是使用退格鍵(\b)以擦除的「e」,插入「K」最接近的方法,然後重新鍵入的「e」:

  • 打印「我躺在」。

  • 打印」 「\ B」,這將刪除最後的字符印刷( 「E」)。

  • 打印 「科」。

注意,\b並不總是工作:

  • 它不會出現在REPLs工作,唯一的全遊戲機

  • 它不能清除換行符之前的任何內容(\n)。一旦你打印新的一行,你已經「保存」了該行的所有內容。

您還可以使用系統調用「CLS」完全擦拭屏幕,但具有兼容性差的太遠,並要求你重新輸入的一切,而不僅僅是最後幾個字符。