Limpiar la pantalla en Rust
Jorge Brunal Pérez
Posted on March 21, 2023
Publicado originalmente (2021-10-11) en mi sitio web.
Muchas maneras, el mismo efecto?
Mientras desarrollamos una aplicación que utiliza la línea de comandos, una de las tareas más triviales y necesaria (en muchos casos) es limpiar la pantalla....
Rust provee un par de opciones para tal fin.
Utilizando std:
use std::process;
fn clear_screen() {
process::Command::new("clear").status().unwrap();
}
funciona muy bien en sistemas Gnu/Linux y Mac OS.
En sistemas Windows, basta con cambiar "clear" por "cls"
Usando códigos de escape ANSI.
Todos los códigos de escape comienzan por los caracteres ESC (carácter ASCII número 27 decimal, 1B en hexadecimal) seguido del carácter [, tienen cero o más parámetros delimitados por ;
ejemplo:
fn clear_screen() {
print!("\x1B[2J");
}
Una variante del anterior, que posiciona el cursor en la fila 0, columna 0.
fn clear_screen() {
print!("\x1B[2J \x1B[0;0f");
}
Otro ejemplo casteando el número 27 como char.
fn clear_screen() {
print!("{}[2J", 27 as char);
}
Donde:
- '\x1B' es el código de escape, que indica que lo que sigue es una secuencia de control.
- '[' indica el comienzo de una secuencia de control.
- '2' indica el tipo de secuencia de control. En este caso, '2' indica que la pantalla debe ser borrada.
- 'J' indica cómo se borrará la pantalla. En este caso, 'J' indica que se borrará todo el contenido de la pantalla.
Referencias
Posted on March 21, 2023
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.