Voici la solution version code:
use std::io;
fn main() {
println!("Bienvenue dans le convertisseur de température !");
println!("Que voulez-vous faire ?");
println!("1. Convertir de Celsius à Fahrenheit");
println!("2. Convertir de Fahrenheit à Celsius");
// Lire le choix de l'utilisateur
let choix = loop {
let mut input = String::new();
io::stdin()
.read_line(&mut input)
.expect("Erreur lors de la lecture de l'entrée.");
match input.trim() {
"1" => break 1,
"2" => break 2,
_ => println!("Veuillez entrer 1 ou 2 pour faire un choix valide."),
}
};
// Lire la température à convertir
let temperature = loop {
println!("Entrez la température à convertir :");
let mut input = String::new();
io::stdin()
.read_line(&mut input)
.expect("Erreur lors de la lecture de l'entrée.");
match input.trim().parse::<f64>() {
Ok(value) => break value,
Err(_) => println!("Veuillez entrer une valeur numérique valide."),
}
};
// Effectuer la conversion
if choix == 1 {
let fahrenheit = celsius_to_fahrenheit(temperature);
println!(
"{:.2} °C équivaut à {:.2} °F",
temperature, fahrenheit
);
} else {
let celsius = fahrenheit_to_celsius(temperature);
println!(
"{:.2} °F équivaut à {:.2} °C",
temperature, celsius
);
}
}
// Fonction de conversion Celsius → Fahrenheit
fn celsius_to_fahrenheit(celsius: f64) -> f64 {
(celsius * 9.0 / 5.0) + 32.0
}
// Fonction de conversion Fahrenheit → Celsius
fn fahrenheit_to_celsius(fahrenheit: f64) -> f64 {
(fahrenheit - 32.0) * 5.0 / 9.0
}