En este artículo, exploraremos la entrada estándar y la salida estándar en el lenguaje de programación Rust. Generalmente, la entrada estándar se proporciona a través del teclado y la salida estándar muestra los valores en la consola.
Hay dos características principales en Rust, alrededor de las cuales se presentan la entrada y la salida estándar de Rust. Proporcionan una interfaz para alimentar la entrada y mostrar la salida. Estos dos rasgos se enumeran a continuación:
- Leer rasgos
- Escribir rasgos
Vamos a explorarlos en detalle.
Leer rasgo:
La lectura de la entrada de un dispositivo de entrada en forma de Bytes se realiza mediante componentes de Rust llamados Readers . La función read_line() se usa para leer datos, una línea a la vez desde un archivo o flujo de entrada. Echa un vistazo al siguiente ejemplo:
Ejemplo:
Rust
use std::io; fn main() { println!("Enter a name:"); let mut guess = String::new(); io::stdin().read_line(&mut guess).expect("failed to readline"); print!("You entered {}", guess); }
Producción:
Al igual que en otros lenguajes de programación, usamos la biblioteca std::io (entrada/salida estándar) para obtener entradas usando la función read_line similar a scanf() en lenguaje C. Let y mut son palabras clave para crear una variable mutable que pueda contener la string dada.
Escribir rasgo:
Los Writers en Rust son programas que pueden escribir datos en un archivo o un flujo de salida en bytes. El método write() se utiliza para este propósito. Eche un vistazo al siguiente ejemplo.
Ejemplo:
Rust
use std::io::Write; fn main() { let var1 = std::io::stdout().write("Geeksforgeeks ".as_bytes()).unwrap(); let var2 = std::io::stdout().write( String::from("is the best.").as_bytes()).unwrap(); std::io::stdout().write(format!( "\n{} bytes of data has been written!",(var1+var2)).as_bytes()).unwrap(); }
Producción:
Geeksforgeeks is the best. 26 bytes of data has been written!
En el ejemplo anterior, la función write() se aplica al flujo de salida estándar devuelto por la función de biblioteca estándar stdout(). El método write() devuelve una enumeración que luego extrae la función unwrap() para mostrar el resultado.
Macros de E/S:
La función de impresión es una de las más importantes y más utilizadas para imprimir cualquier salida en casi todos los principales lenguajes de programación. Rust tiene una función print !() y println !() similar a printf en lenguaje C. Veremos cómo podemos imprimir la salida en Rust. ¡La principal diferencia entre la impresión de Rust ! & imprimir! es que la impresión! salidas en la misma línea mientras que println ! dar salida en una nueva línea.
¡impresión!
La función de impresión de macros del programa es casi similar a cout en C++ sin endl (o) \n. A continuación se muestra un ejemplo de impresión.
Ejemplo:
Rust
fn main() { // printed in new line print!("Hello, Geeks"); print!(" Welcome to GeeksForGeeks"); }
Producción:
Hello, Geeks Welcome to GeeksForGeeks
imprimir!
println es la macro que se imprime en la salida estándar, con una nueva línea. ¡Podemos usar println ! solo para la salida principal de su programa.
Ejemplo:
Rust
fn main() { // printed in new line println!("Hello, Geeks"); println!("Welcome to GeeksForGeeks"); }
Producción:
Hello, Geeks Welcome to GeeksForGeeks
Entrada de lectura
Al igual que en otros lenguajes de programación, usamos la biblioteca std::io (entrada/salida estándar) para obtener entradas usando la función read_line similar a scanf() en lenguaje C. Let y mut son palabras clave para crear una variable mutable que pueda contener la string dada.
Rust
use std::io; fn main() { println!("Enter a name:"); let mut guess = String::new(); io::stdin().read_line(&mut guess).expect("failed to readline"); print!("You entered {}", guess); }
Producción:
Enter a name: geeksforgeeks You entered geeksforgeeks
Argumentos de la línea de comandos:
Los argumentos de la línea de comandos son los valores que se pasan a través de la consola al programa para su procesamiento. Es similar a cómo pasa los valores de los parámetros a la función main() . El std::env::args() se usa para devolver los argumentos de la línea de comando. Eche un vistazo al siguiente ejemplo.
Ejemplo:
En este ejemplo, usaremos argumentos de línea de comandos para pasar valores a la función principal del programa.
Rust
use std:: env; fn main() { let args: Vec<String> = env::args().collect(); for argument in args.iter() { println!("{}", argument); } }
Veamos lo que hicimos en el ejemplo anterior. Primero, necesitamos usar el módulo de entorno usando std:: env. Luego creamos un nuevo vector de strings. Ahora, este vector solo lee cada uno de nuestros argumentos. Lo que significa que podemos decir que el tipo del vector es una string que equivale a una variable y la función args.collect() se usa para recopilar el argumento de la línea de comando. Aquí creamos un nuevo vector que contiene strings, esto es igual a todos los argumentos de la línea de comandos que se recopilan .
Ahora use el siguiente comando en su shell para activar el script Rust:
cargo run
Luego pase el argumento de la siguiente manera:
cargo run YOUR_ARGUMENT
Aquí pasaremos la string «dom» por el bien del ejemplo.
Producción:
Publicación traducida automáticamente
Artículo escrito por kushwanthreddy y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA