看起來您可以使用\b
從控制檯中的當前行返回一個字符。但是,控制檯似乎無法跳出一行。在Windows控制檯中排隊
我想標記無效的用戶輸入紅色。輸入敲擊輸入後,用戶按下輸入這將在控制檯中放入不可換行的新行。
我的計劃是做到以下幾點:
- 檢查
input
的有效性。 - 如果無效,打印
input.length()+1
倍\b
- 打開控制檯紅色
- 打印
input
,打印\n
但是,該\b
不會跳轉回用戶輸入線。所以,我有B計劃:
- 記住字符串的長度,這是用戶輸入(
query_string
) - 檢查
input
的有效性之前。 - 如果它是無效的,去排隊(爲進入輸入)
- 跳轉到
query_string.length()
字符 - 打開控制檯紅色
- 打印
input
,打印\n
不過,我不不知道如何使用console API來做到這一點。
['SetConsoleCursorPosition'](http://msdn.microsoft.com/en-us/library/windows/desktop/ms686025(v = vs.85).aspx)。雖然我在這裏,['SetConsoleTextAttribute'](http://msdn.microsoft.com/en-us/library/windows/desktop/ms686047(v = vs.85).aspx) – chris