Страницы

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

четверг, 23 января 2020 г.

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

#input #rust


Здравствуйте! Как я могу считать данные вводимые пользователем с клавиатуры? Здесь
также задан вопрос, но предложенные способы очень неудобны. Можно ли как-то считать
строку в стиле Python (input()) или C++/Си (cin/scanf())? А если нет, то как сделать
это более удобным способом?

UPD

Нашел это. Подключаю к проекту:  

[dependencies.text_io]
version = "*"
features = ["nightly"]


Но к сожалению уверенно отказывается компилироваться quasi v0.3.0  
    


Ответы

Ответ 1



Написал небольшую функцию: 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; }

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

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