gpt4 book ai didi

rust - 用户输入结合 std::path 检查路径

转载 作者:行者123 更新时间:2023-12-03 11:44:13 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Why does my string not match when reading user input from stdin?

(3 个回答)


1年前关闭。




我想测试用户输入提供的文件是否存在以下代码:

let mut path_file = String::new();
// input example : path_file = input("C:/Users/.../.../.../file.DAT");
match io::stdin().read_line(&mut path_file) {
Ok(n) => {
let path: bool = Path::new(&path_file).exists();
// let path: bool = Path::new("C:/Users/.../.../.../file.DAT").exists();
if path {
read_file_fo(Path::new(&path_file));
} else {
println!("...");
}
}
Err(error) => println!("error : {}", error),
}
但是,条件总是错误的。如果我直接硬编码路径:
let path: bool = Path::new("C:/Users/.../.../.../file.DAT").exists();
代替 :
let path: bool = Path::new(&path_file).exists();
脚本运行良好。
有人可以解释为什么吗?

最佳答案

read_line保留尾随换行符,因此将其修剪掉:

let trimmed_path_file = path_file.trim();
let path = Path::new(&trimmed_path_file);
if path.exists() {
read_file_fo(path);
} else {
println!("Path does not exist.");
}

关于rust - 用户输入结合 std::path 检查路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65448520/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com