diff options
Diffstat (limited to 'rust/theBook/chapter-3-variables-and-mutability/practice/convert-temp')
-rw-r--r-- | rust/theBook/chapter-3-variables-and-mutability/practice/convert-temp/Cargo.toml | 8 | ||||
-rw-r--r-- | rust/theBook/chapter-3-variables-and-mutability/practice/convert-temp/src/main.rs | 59 |
2 files changed, 67 insertions, 0 deletions
diff --git a/rust/theBook/chapter-3-variables-and-mutability/practice/convert-temp/Cargo.toml b/rust/theBook/chapter-3-variables-and-mutability/practice/convert-temp/Cargo.toml new file mode 100644 index 0000000..391d95c --- /dev/null +++ b/rust/theBook/chapter-3-variables-and-mutability/practice/convert-temp/Cargo.toml @@ -0,0 +1,8 @@ +[package] +name = "convert-temp" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] diff --git a/rust/theBook/chapter-3-variables-and-mutability/practice/convert-temp/src/main.rs b/rust/theBook/chapter-3-variables-and-mutability/practice/convert-temp/src/main.rs new file mode 100644 index 0000000..971811e --- /dev/null +++ b/rust/theBook/chapter-3-variables-and-mutability/practice/convert-temp/src/main.rs @@ -0,0 +1,59 @@ +use std::io; +use std::process; + +fn read_input() -> i32 { + let mut input = String::new(); + + io::stdin() + .read_line(&mut input) + .expect("failed to read line"); + + let input = match input.trim().parse() { + Ok(input) => input, + Err(_) => { + println!("not a number!"); + process::exit(1); + }, + }; + input +} + +fn main() { + println!("Convert temperatures between Fahrenheit and Celsius"); + println!(""); + + loop { + println!("Please choose converting method:"); + println!("1) Fahrenheit to Celsius 2) Celsius to Fahrenheit"); + println!("3) exit"); + + let choice = read_input(); + + if choice == 0 { + let _choice = read_input(); + } else if choice == 1 { + fah_to_cel(); + } else if choice == 2 { + cel_to_fah(); + } else if choice == 3 { + break + }; + } + println!("Thinks for using"); +} + +fn fah_to_cel() { + println!("Please enter a Fahrenheit temperature"); + let fah = read_input() as f32; + + println!("the Celsius of {fah} is {}", (fah-32.0)/1.8); + println!(""); +} + +fn cel_to_fah() { + println!("Please enter a Celsius temperature"); + let cel = read_input() as f32; + + println!("The Fahrenteit of {cel} is {}", cel*1.8+32.0); + println!(""); +} |