Очистка консоли для интерфейса Golang
Есть ли на Go что то вроде cls как на C++, пробовал искать, но каких то простых решений не нашел, хотелось бы очищать выводы после ввода пользователя, чтобы было легче работать с программой
Ответы (1 шт):
Автор решения: Антон
→ Ссылка
Один из вариантов
https://stackoverflow.com/questions/22891644/how-can-i-clear-the-terminal-screen-in-go
Так же под windows можно включить это
https://docs.microsoft.com/ru-ru/windows/console/console-virtual-terminal-sequences
Пример:
var (
kernel32 = syscall.MustLoadDLL("kernel32.dll")
setConsoleMode = kernel32.MustFindProc("SetConsoleMode")
)
func SetConsoleMode(m uint32) error {
r, _, err := setConsoleMode.Call(uintptr(syscall.Handle(os.Stdout.Fd())), uintptr(m))
if r == 0 {
return err
}
return nil
}
func Gotoxy(x, y int) {
fmt.Printf("\x1b[%d;%dH", y, x)
}
func ClearScreen() {
fmt.Print("\x1b[40m")
fmt.Print("\x1b[2J")
}
func HideCursor() {
fmt.Print("\x1b[?25l")
}
func ShowCursor() {
fmt.Print("\x1b[?25h")
}
func ClearAll() {
fmt.Print("\x1b[!p")
}
int main() {
SetConsoleMode(windows.ENABLE_VIRTUAL_TERMINAL_PROCESSING | windows.ENABLE_PROCESSED_INPUT)
}
С помощью ansi escape codes можно так же устанавливать цвета, управлять курсором, и шрифтами. Смотрите ссылку выше.