gpt4 book ai didi

printing - 在 Rust 中覆盖时,如何防止上一行中的字符出现?

转载 作者:行者123 更新时间:2023-11-29 08:23:55 25 4
gpt4 key购买 nike

我有以下代码,使我能够使控制台输出出现在同一行上。但是,如果先前打印的值的长度大于其后的值,则会显示较长值的剩余部分。我在 Python 等语言中看到过关于同一问题的其他问题,但我不确定如何在 Rust 中克服这个问题。

这是一个例子:

use std::io::prelude::*;

fn main() {
let fruits = ["Blueberry", "Orange", "Cherry", "Lemon", "Apple"];
print_value(&fruits);
}

fn print_value(e: &[&str]) {
for val in e {
print!("\rStatus: {}", val);
std::io::stdout().flush().unwrap();
// pause program temporarily
std::thread::sleep(std::time::Duration::new(2, 0));
}
}

最佳答案

一些终端有一个特殊的字符序列,当打印时,清除当前光标位置右侧的行。

VT100 兼容终端有一个字符序列 EL0。在 Rust 中,它可以用 "\x1B[K" 表示。

这里有点thingy这可能就是一个例子。

要以更便携的方式做到这一点,您可以使用终端库,例如 term它是 delete_line方法。

关于printing - 在 Rust 中覆盖时,如何防止上一行中的字符出现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37596759/

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