Rust Cookbook: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Viktor (Diskussion | Beiträge) (Neu angelegt) |
Viktor (Diskussion | Beiträge) 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
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);