Rust Cookbook: Unterschied zwischen den Versionen

Aus VGKB
Zur Navigation springen Zur Suche springen
(Neu angelegt)
 
K
 
Zeile 1: Zeile 1:
Im [[Rust]] sammle ich Codesnippets, die an der ein und anderen Stelle das Leben einfacher machen.
+
Im '''[[Rust]] Cookbook''' sammle ich Codesnippets, die an der ein und anderen Stelle das Leben einfacher machen.
  
 
== I/O ==
 
== I/O ==

Aktuelle Version vom 11. Dezember 2019, 20:19 Uhr

Im Rust Cookbook sammle ich Codesnippets, die an der ein und anderen Stelle das Leben einfacher machen.

I/O

Readline ohne Zeilenvorschub

Internet-news-reader.svg Dieser Artikel wurde bereits in einem Blogartikel von vNotes behandelt.

Hier gibt es mehrere Wege der Umsetzung.

Mit .pop():

use std::io::{Write, stdin, stdout};

fn main() {
    // Intro
    println!("-- INPUT Demo --");
    print!("Please enter something: ");
    stdout().flush().unwrap();

    // Input
    let mut inputvar: String = String::new();                                  
    stdin().read_line(&mut inputvar).expect("Error while data input");         
    inputvar.pop(); // remove trailing newline

    // Output
    println!("Eingabe: {}", inputvar);
}

Bzw. dies als verbesserte cross-platform Version:

fn trim_newline(s: &mut String) {
    while s.ends_with('\n') || s.ends_with('\r') {
        s.pop();
    }
}

Oder noch kürzer und mit trim:

let len = input.trim_end_matches(&['\r', '\n'][..]).len();
input.truncate(len);