G'day,我正在尝试记录一条可以随变量更改的消息。 我的意思是:
我尝试过使用这个:
let message = format!(
"\x1B[2K\rA: {}, B: {}",
a, b
);
print!("{}", message);
std::io::stdout().flush().unwrap();
但这只是多次打印该行并且不喜欢,请更改该行
您的终端实际上支持 ANSI 转义码吗?因为它对我来说效果很好:
use std::io::Write;
fn main() {
for (a, b) in std::iter::zip(0.., &["A", "B", "C", "D"]) {
let message = format!("\x1B[2K\rA: {}, B: {}", a, b);
print!("{}", message);
std::io::stdout().flush().unwrap();
std::thread::sleep(std::time::Duration::from_secs(1))
}
}
确实显示线路随时间变化。
顺便说一句,
format!
是不必要的,您可以直接格式化print!
中的所有内容
use std::io::Write;
fn main() {
for (a, b) in std::iter::zip(0.., &["A", "B", "C", "D"]) {
print!("\x1B[2K\rA: {a}, B: {b}");
std::io::stdout().flush().unwrap();
std::thread::sleep(std::time::Duration::from_secs(1))
}
}