Struct std::io::Stdin
[−]
[src]
pub struct Stdin {
// some fields omitted
}A handle to the standard input stream of a process.
Each handle is a shared reference to a global buffer of input data to this
process. A handle can be lock`lock'd to gain full access toBufReadmethods (e.g..lines()`). Writes to this handle are otherwise locked with respect
to other writes.
This handle implements the Read`Readtrait, but beware that concurrent reads ofStdin` must be executed with care.
Created by the function io::stdin().
Methods
impl Stdin
fn lock(&self) -> StdinLock
Locks this handle to the standard input stream, returning a readable guard.
The lock is released when the returned lock goes out of scope. The
returned guard also implements the Read`Readand` and BufRead`BufRead` traits for
accessing the underlying data.
fn read_line(&self, buf: &mut String) -> Result<usize>
Locks this handle and reads a line of input into the specified buffer.
For detailed semantics of this method, see the documentation on
BufRead::read_line.
Examples
fn main() { use std::io; let mut input = String::new(); match io::stdin().read_line(&mut input) { Ok(n) => { println!("{} bytes read", n); println!("{}", input); } Err(error) => println!("error: {}", error), } }use std::io; let mut input = String::new(); match io::stdin().read_line(&mut input) { Ok(n) => { println!("{} bytes read", n); println!("{}", input); } Err(error) => println!("error: {}", error), }
You can run the example one of two ways:
- Pipe some text to it, e.g.
printf foo | path/to/executable - Give it text interactively by running the executable directly, continuing