MeltIce2024 / meltice2024.github.io

0 stars 0 forks source link

删除Rust输入后的换行符 #3

Open MeltIce2024 opened 3 weeks ago

MeltIce2024 commented 3 weeks ago

问题

io::stdin() 中,会将用户的输入自动添加上换行符,就像这样:

use std::io;
fn main() {
    println!("输入一个数字");
    let mut num = String::new();
    io::stdin()
        .read_line(&mut num)
        .expect("???");
    println!("你输入了 {} 数字", num);
}

输出结果为:

root@localhost:~# ./test
输入一个数字
10
你输入了 10
 数字
root@localhost:~#

解决方法

可以先用一个变量存储输入的内容,再用另一个变量使用 trim() 来去除末尾换行符,例如:

use std::io;
fn main() {
    println!("输入一个数字");
    let mut num1 = String::new();
    io::stdin()
        .read_line(&mut num1)
        .expect("???");
    let num = num1.trim();
    println!("你输入了 {} 数字", num);
}

输出结果为:

root@localhost:~# ./test
输入一个数字
10
你输入了 10 数字
root@localhost:~#