use std::io::{self, Write};
fn main() {
let mut input = String::new();
let mut integer = 0;
let mut total = 0;
while integer >= 0 {
print!("Enter a positive integer (to exit, enter a negative number): ");
io::stdout().flush().expect("can't flush std out.");
match io::stdin().read_line(&mut input) {
Ok(_) => {}
Err(err) => eprintln!("error reading from standard input. ERR: {}", err),
}
match input.strip_suffix("\n") {
Some(str) => input = str.to_string(),
None => {
println!("You entered nothing.");
continue;
}
}
match input.parse::() {
Ok(value) => {
if value < 0 {
break;
}
integer += 1;
total += value;
}
Err(err) => eprintln!(
"invalid input {input}. must be a postive or negative integer. ERR: {err}"
),
}
input.clear();
}
if integer > 0{
println!("The total numbers of positive integers entered is {integer}");
}
println!("The sum of all positive integer(s) is {total}.");
}