0
我們可以將'\ n'字符添加到字符串中,以便在我們使用printf
時可以轉到下一行。如何向前移動文本光標?
那麼,如何將文本光標向前移動一行呢? 就像我們使用'\ n'執行下一行一樣簡單。
例如,這是一個字符串「我躺在\moveforwardk
K」
它應該是「我喜歡」我輸出的串使用printf
時。
我們可以將'\ n'字符添加到字符串中,以便在我們使用printf
時可以轉到下一行。如何向前移動文本光標?
那麼,如何將文本光標向前移動一行呢? 就像我們使用'\ n'執行下一行一樣簡單。
例如,這是一個字符串「我躺在\moveforwardk
K」
它應該是「我喜歡」我輸出的串使用printf
時。
根據你的「我喜歡」的例子,我會假設你的意思是「向後」而不是「向前」。
據我所知,沒有超級簡單的方法來實現你想要做的事情。除非模擬按下鍵盤上的箭頭鍵,否則不能實際上以編程方式移動光標。假定您使用的控制檯支持移動光標。
我知道的是使用退格鍵(\b
)以擦除的「e」,插入「K」最接近的方法,然後重新鍵入的「e」:
打印「我躺在」。
打印」 「\ B」,這將刪除最後的字符印刷( 「E」)。
打印 「科」。
注意,\b
並不總是工作:
它不會出現在REPLs工作,唯一的全遊戲機
它不能清除換行符之前的任何內容(\n
)。一旦你打印新的一行,你已經「保存」了該行的所有內容。
您還可以使用系統調用「CLS」完全擦拭屏幕,但具有兼容性差的太遠,並要求你重新輸入的一切,而不僅僅是最後幾個字符。
如果沒有要移動的文本,則不能「前進」。你確定你不只是想要空格或製表符? – Carcigenicate
根據你的編輯,你的意思是倒退?在你的例子中,你需要用'\ b'(退格字符)擦除'k',然後重新輸入'e'。 – Carcigenicate
也許他想要的是回車'\ r',但我對他的問題有些困惑。而'\ r'可能不會在某些控制檯上帶來預期的結果。 – Gerhardh