Страницы

Поиск по вопросам

суббота, 16 марта 2019 г.

Ввод данных с клавиатуры - Rust

Здравствуйте! Как я могу считать данные вводимые пользователем с клавиатуры? Здесь также задан вопрос, но предложенные способы очень неудобны. Можно ли как-то считать строку в стиле Python (input()) или C++/Си (cin/scanf())? А если нет, то как сделать это более удобным способом?
UPD
Нашел это. Подключаю к проекту:
[dependencies.text_io] version = "*" features = ["nightly"]
Но к сожалению уверенно отказывается компилироваться quasi v0.3.0


Ответ

Написал небольшую функцию:
fn read_string(comment:&str) -> String { println!("{}", comment); let mut string: String = String::new();
std::io::stdin().read_line(&mut string) .ok() .expect("Error read line!");
return string; }
Если вместо return string написать return string.trim().parse::().unwrap(); можно получить тип i32, а по аналогии - все остальные. Теперь можно писать так: let number:i32 = read_i32("Input number: "); Пока не знаю, как выполнить чтение на одной строке с желаемым тектом, т.е при использовании примера выше:
Input number: (здесь вводится текст)
UPD
Чтобы текст вводился на одной строке с комментарием к нему модифицируйте функцию:
use std::io::Write; use std::io;
fn read_string(comment:&str) -> String { print!("{}", comment); io::stdout().flush();
let mut string: String = String::new();
io::stdin().read_line(&mut string) .ok() .expect("Error read line!");
return string; }

Комментариев нет:

Отправить комментарий