使用rust实现一个计算器,要求给出完整代码
时间: 2023-05-15 17:05:44 浏览: 100
好的,以下是使用 Rust 实现的计算器的完整代码:
```rust
use std::io;
fn main() {
loop {
println!("请输入要计算的表达式:");
let mut input = String::new();
io::stdin().read_line(&mut input).expect("读取输入失败");
let input = input.trim();
if input == "exit" {
break;
}
let result = eval(input);
match result {
Ok(value) => println!("计算结果为:{}", value),
Err(msg) => println!("计算失败:{}", msg),
}
}
}
fn eval(input: &str) -> Result<f64, String> {
let mut tokens = tokenize(input);
let mut result = parse_number(&mut tokens)?;
while !tokens.is_empty() {
let op = tokens.remove(0);
let num = parse_number(&mut tokens)?;
match op {
"+" => result += num,
"-" => result -= num,
"*" => result *= num,
"/" => result /= num,
_ => return Err(format!("未知的操作符:{}", op)),
}
}
Ok(result)
}
fn tokenize(input: &str) -> Vec<&str> {
input.split_whitespace().collect()
}
fn parse_number(tokens: &mut Vec<&str>) -> Result<f64, String> {
let token = tokens.remove(0);
match token.parse() {
Ok(num) => Ok(num),
Err(_) => Err(format!("无效的数字:{}", token)),
}
}
```
这个计算器可以处理加减乘除四种基本运算,支持浮点数计算。你可以在命令行中输入表达式,程序会输出计算结果。如果输入 exit,则程序会退出。