📅  最后修改于: 2023-12-03 15:12:32.688000             🧑  作者: Mango
Rust 是一种类型安全、并发执行的编程语言,可以在多个平台上使用,包括 Linux、Windows 和 macOS。它是一种系统级编程语言,特别适用于高性能、安全和并发性的编写。Rust 类型系统具有内存安全和所有权模型,可以避免出现空指针异常和数据竞争等问题。
Rust 的标准库提供了与输入输出相关的模块和函数,包括文件读写、标准输入/输出和网络编程等。下面是一些常用的输入输出函数和示例。
使用标准输入输出模块(std::io
)处理命令行输入和输出。下面是一个简单的示例程序,从标准输入读取字符串并输出它:
use std::io;
fn main() {
let mut input = String::new();
println!("Please input a string:");
io::stdin().read_line(&mut input).expect("Failed to read line");
println!("Your input is: {}", input.trim());
}
在此代码中,首先创建一个空字符串 input
来存储用户输入。然后使用 println!
宏输出提示信息。io::stdin().read_line(&mut input)
用于读取一行输入,并将其写入 input
中。最后使用 println!
宏输出输入字符串。
说明: 使用 expect
方法用于处理可能出现的错误,并提供有用的错误信息。
Rust 的标准库提供了许多文件读写功能,包括文件创建、打开、读取和写入等。下面是一个示例程序,从文件读取字符串并写入到另一个文件中:
use std::fs::File;
use std::io::{BufRead, BufReader, Write};
fn main() {
let f_in = File::open("input.txt").unwrap();
let f_out = File::create("output.txt").unwrap();
let mut reader = BufReader::new(f_in);
let mut writer = std::io::LineWriter::new(f_out);
let mut line = String::new();
while let Ok(n) = reader.read_line(&mut line) {
if n == 0 {
break;
}
writer.write_all(line.as_bytes()).unwrap();
line.clear();
}
}
在此程序中,首先打开输入文件 input.txt
和输出文件 output.txt
,并创建包含它们的 File
对象。然后使用 BufReader
读取输入文件,并使用 LineWriter
写入输出文件。最后,使用 read_line
方法逐行读取输入文件中的内容,使用 write_all
方法将其写入输出文件中。程序使用 unwrap
方法处理可能出现的错误。
Rust 的标准库提供了 std::env
模块来获取命令行参数。下面是一个示例程序,展示如何获取命令行参数并使用它们:
use std::env;
fn main() {
let args: Vec<String> = env::args().collect();
if args.len() < 2 {
println!("Usage: ./program <filename>");
return;
}
let filename = &args[1];
println!("Opening file: {}", filename);
// ...
}
在本示例中,首先使用 env::args
函数获取所有命令行参数,并使用 collect
方法将它们存储在一个 Vec
向量 args
中。程序会检查向量长度是否等于 2。如果长度小于 2,则程序会输出用法信息并退出。否则,它会提取文件名并输出文件名信息。