1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
//! # Simple Input
//!
//! `simple_input` provides a simple way to ask for user input, inspired by Python's `input` function.
//!
//! ```
//! extern crate simple_input;
//! use simple_input::input;
//!
//! fn main() {
//! let name = input("What is your name? ");
//! println!("Hello {}!", name);
//! }
//! ```
use std::io;
/// Takes user input, given a prompt.
///
/// # Example
///
/// ```
/// let user_input = input("What is your name? ");
/// println!("Hello {}!", user_input);
/// ```
pub fn input(prompt: &str) -> String {
let mut user_input = String::new();
print!("{}", prompt); // Print the prompt
io::Write::flush(&mut io::stdout()) // Flush stdout
.expect("Stdout flush failed while taking user input");
io::stdin().read_line(&mut user_input) // Accept user input
.expect("Taking user input from Stdin failed");
user_input.pop(); // Remove the newline character
return user_input;
}