#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; }
Комментариев нет:
Отправить комментарий