打印从标准输入读取的字符串时如何忽略换行符?

Sri*_*ram 6 printing input rust

我尝试编写一些代码,从标准输入读取名称并打印出来。问题是在打印变量后立即换行,变量后面的字符打印在下一行:

use std::io;

fn main() {
    println!("Enter your name:");
    let mut name = String::new();
    io::stdin().read_line(&mut name).expect("Failed To read Input");
    println!("Hello '{}'!", name);
}
Run Code Online (Sandbox Code Playgroud)

这 '!' 打印在下一行,这不是预期的位置。

在此处输入图片说明

4e5*_*c4c 9

使用.trim()对一个字符串中删除空白。这个例子应该有效。

use std::io;

fn main() {
    println!("Enter your name:");
    let mut name = String::new();
    io::stdin().read_line(&mut name).expect("Failed To read Input");
    println!("Hello '{}'!", name.trim());
}
Run Code Online (Sandbox Code Playgroud)

此外,还trim_start().trim_end()如果你需要删除只从一个字符串的侧空白变化。