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}."); }