Возникла проблема с выходом из цикла loop
//===============
use std::io;
fn main()
{
loop
{
println!("Enter something ");
let mut guess = String::new();
io::stdin().read_line(&mut guess)
.expect("<<<");
println!("{}",guess);
if guess == "q"
{
break;
}
}
}
хинт:
Поменяй println!("{}",guess);
на println!("[{}]",guess);
и сразу поймёшь в чём ошибка
Поменял - вот что получил
q
[q
]
Ну и? Не понял?
Это элементарно же, Ватсон.
У тебя read_line
возвращает строку в конце которой стоит \n
(он же LF, он же line feed). Соответственно ‘q’ != q\n
и из цикла не выходим.
Да это я понял - в С++ такая же история. Не понял КАК ВЫЙТИ.
Получилось. Не ругайся - я не волшебник в rust - я только учусь. И про trim() вообще нигде не встречал.
1 лайк
Копаюсь - у меня их вагон и маленькая тележка. Но иногда вот на такие вопросы просто не знаешь в каком месте искать. Кстати, с подобной проблемой столкнулся только на С++ и в Rust. Ах да еще в Perl есть функция “chomp()” для обрезки конца строки.
1 лайк