Änderungen

Zur Navigation springen Zur Suche springen

Rust Cookbook

1.195 Bytes hinzugefügt, 16:29, 2. Mai 2019
Neu angelegt
Im [[Rust]] sammle ich Codesnippets, die an der ein und anderen Stelle das Leben einfacher machen.

== I/O ==
=== Readline ohne Zeilenvorschub ===
{{Blogartikel|https://blog.v-gar.de/2019/04/rust-zeilenvorschub-nach-eingabe-entfernen/}}
Hier gibt es mehrere Wege der Umsetzung.

'''Mit .pop():'''
<syntaxhighlight lang="Rust">
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);
}
</syntaxhighlight>

'''Bzw. dies als verbesserte cross-platform Version:'''
<syntaxhighlight lang="Rust">
fn trim_newline(s: &mut String) {
while s.ends_with('\n') || s.ends_with('\r') {
s.pop();
}
}
</syntaxhighlight>
'''
Oder noch kürzer und mit trim:'''

<syntaxhighlight lang="Rust">
let len = input.trim_end_matches(&['\r', '\n'][..]).len();
input.truncate(len);
</syntaxhighlight>

[[Kategorie:Rust]]

Navigationsmenü