一直在环顾四周,但似乎找不到很好的答案。
使用Rust,有没有一种方法可以覆盖控制台输出,而不是简单地追加?
一个例子是打印进度百分比,我宁愿覆盖该行,然后简单地打印新行。
控制台通常通过打印“控制字符”来控制。但是它们取决于平台和终端类型。您可能不想重新发明轮子来做到这一点。
您可以使用交叉项板条箱来获得这种控制台控件。一个简单的例子是:
use std::{thread, time};
use std::io::{Write, stdout};
use crossterm::{QueueableCommand, cursor};
fn main() {
let mut stdout = stdout();
for i in 1..10 {
stdout.queue(cursor::SavePosition);
stdout.write(format!("Here!!! {}", i).as_bytes());
stdout.queue(cursor::RestorePosition);
stdout.flush();
thread::sleep(time::Duration::from_millis(500));
}
println!("Hello, world!");
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句