Вот ситуация, я хочу выполнить терминальное взаимодействие, я хочу запустить дочерний поток, чтобы обновить первые N строк, и использовать основной поток для обработки пользовательского ввода.
После этого программа напечатает изменяемую строку, возможно, некоторые журналы.
Дочерняя нить выглядит так:
let mut count: i32 = 0;
loop {
println!("\x1B[2F\x1B[2KHi user1, count:{}\n", count);
count += 1;
let ten_millis = time::Duration::from_millis(1000);
thread::sleep(ten_millis);
}
например:
----------------
Hi user1, count: 0
Input: 1+1
Output: 2
----------------
Код переподготовки работает хорошо, но курсор будет сброшен к началу строки, и я хочу всегда перемещать его в конец последней строки.Как я могу сделать этот трюк?
Любая помощь будет принята с благодарностью.