Rust 中的标准 I/O
在本文中,我们将探讨 Rust 编程语言中的标准输入和标准输出。通常,标准输入通过键盘提供,标准输出在控制台中显示值。
Rust 中有两个核心特征,围绕着 Rust 的标准输入和输出。它们提供了一个用于输入输入和显示输出的接口。下面列出了这两个特性:
- 读取特征
- 写特征
让我们详细探讨它们。
读取特性:
从输入设备以 Bytes 的形式读取输入是由称为Readers的 Rust 组件完成的。 read_line()函数用于从输入流或文件中一次读取一行数据。看看下面的例子:
例子:
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);
}
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();
}
Rust
fn main() {
// printed in new line
print!("Hello, Geeks");
print!(" Welcome to GeeksForGeeks");
}
Rust
fn main() {
// printed in new line
println!("Hello, Geeks");
println!("Welcome to GeeksForGeeks");
}
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);
}
Rust
use std:: env;
fn main() {
let args: Vec = env::args().collect();
for argument in args.iter() {
println!("{}", argument);
}
}
输出:
与其他编程语言一样,我们使用 std::io(标准输入/输出)库来获取输入,使用类似于 C 语言中的scanf()的read_line函数。 let和mut是用于创建可以保存给定字符串的可变变量的关键字。
写入特性:
Rust 中的 Writers 是可以将数据以字节为单位写入文件或输出流的程序。 write() 方法用于此目的。看看下面的例子。
例子:
锈
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();
}
输出:
Geeksforgeeks is the best.
26 bytes of data has been written!
在上面的示例中, write()函数应用于 stdout() 标准库函数返回的标准输出流。 write() 方法返回一个枚举, unwrap()函数进一步提取该枚举以显示结果。
输入/输出宏:
在几乎所有主要的编程语言中,print函数是最重要和最常用的函数之一,用于打印任何输出。 Rust 有和 C 语言中的printf类似的打印!() 和println !()函数。我们将看到如何在 Rust 中打印输出。 Rust打印的主要区别! &打印!是那个印刷品!输出在同一行,而println !在新行中给出输出。
打印!
程序的打印宏函数几乎类似于C++中的cout ,没有endl (或)\n。打印示例如下
例子:
锈
fn main() {
// printed in new line
print!("Hello, Geeks");
print!(" Welcome to GeeksForGeeks");
}
输出:
Hello, Geeks Welcome to GeeksForGeeks
打印!
println是打印到标准输出的宏,带有换行符。我们可以使用println !仅用于程序的主要输出。
例子:
锈
fn main() {
// printed in new line
println!("Hello, Geeks");
println!("Welcome to GeeksForGeeks");
}
输出:
Hello, Geeks
Welcome to GeeksForGeeks
读取输入
与其他编程语言一样,我们使用 std::io(standard input/output) 库来获取输入,使用类似于 C 语言中的scanf () 的read_line函数。 let和mut是用于创建可以保存给定字符串的可变变量的关键字。
锈
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);
}
输出:
Enter a name: geeksforgeeks
You entered geeksforgeeks
命令行参数:
命令行参数是通过控制台传递给程序进行处理的值。这类似于将参数值传递给main()函数。 std::env::args()用于返回命令行参数。看看下面的例子。
例子:
在这个例子中,我们将使用命令行参数将值传递给程序的主函数。
锈
use std:: env;
fn main() {
let args: Vec = env::args().collect();
for argument in args.iter() {
println!("{}", argument);
}
}
让我们检查一下我们在上面的例子中做了什么。首先,我们需要使用std::env来使用环境模块。然后我们创建一个新的字符串向量。现在,这个向量只是读取我们的每个参数。这意味着我们可以说向量的类型是一个等于变量的字符串,并且args.collect()函数用于从命令行收集参数。在这里,我们创建了一个新的向量,用于保存字符串,这等于收集的所有命令行参数。
现在在你的 shell 中使用以下命令来激活 Rust 脚本:
cargo run
然后传入参数如下:
cargo run YOUR_ARGUMENT
在这里,为了举例,我们将传递字符串“dom”。
输出: