X-Git-Url: https://git.ralfj.de/rust-101.git/blobdiff_plain/4f61be32dd480f23a7fef05ee66c42ae27c980c6..28649c69648f5358df138ec1c498c78d4ce3ff92:/workspace/src/part03.rs?ds=sidebyside diff --git a/workspace/src/part03.rs b/workspace/src/part03.rs index 08cca72..3840156 100644 --- a/workspace/src/part03.rs +++ b/workspace/src/part03.rs @@ -1,5 +1,3 @@ -// ***Remember to enable/add this part in `main.rs`!*** - // Rust-101, Part 03: Input // ======================== @@ -12,19 +10,19 @@ use std::io; fn read_vec() -> Vec { let mut vec: Vec = Vec::::new(); - // The central handle to the standard input is made available by `io::stdin()`. + // The central handle to the standard input is made available by the function `io::stdin`. let stdin = io::stdin(); - println!("Enter a list of numbers, one per line. End with Ctrl-D."); + println!("Enter a list of numbers, one per line. End with Ctrl-D (Linux) or Ctrl-Z (Windows)."); for line in stdin.lock().lines() { // Rust's type for (dynamic, growable) strings is `String`. However, our variable `line` - // here is not yet of that type: It rather has type `io::Result`. + // here is not yet of that type: It has type `io::Result`. // I chose the same name (`line`) for the new variable to ensure that I will never, accidentally, // access the "old" `line` again. let line = line.unwrap(); // Now that we have our `String`, we want to make it an `i32`. - match line.parse::() { + match line.trim().parse::() { Ok(num) => { unimplemented!() }, @@ -59,7 +57,7 @@ pub fn main() { // Notice that I called the function on `SomethingOrNothing` `print2` to disambiguate from the `print` defined previously. // // *Hint*: There is a macro `print!` for printing without appending a newline. -trait Print { +pub trait Print { /* Add things here */ } impl SomethingOrNothing {