【问题标题】:Get console width in Rust在 Rust 中获取控制台宽度
【发布时间】:2020-03-12 12:31:41
【问题描述】:

当对我们的输出进行换行以使其在视觉上令人愉悦时,了解控制台窗口或至少了解缓冲区宽度会很有帮助。

CC++ 中有如何做到这一点的答案,C# 甚至具有使这项任务变得简单的属性。但是锈?

我可以使用什么来获取这些信息,还是应该让用户决定我的程序在哪里包装输出?

【问题讨论】:

  • 对于 C 和 C++,您需要特定的操作系统功能,您应该查看 crates.io 以找到对您有帮助的东西
  • 找到了三个看起来很有趣的箱子。谢谢!

标签: rust console


【解决方案1】:

有多个板条箱能够确定终端宽度。使用哪一个可能取决于每种情况的确切相关要求。一个好的起点可能是查看termion,它还提供了许多其他有用的低级终端处理功能。

从上面的链接页面可以看出,它支持多个平台。然而,任何使用 Microsoft Windows 的人都应该注意,没有提及他们的平台:

还有termsize crate,其目的无非是确定终端大小。此 crate 具有更广泛的平台支持,并且可以与 Microsoft Windows 一起使用。

在更新 Cargo.toml 依赖项后,使用这两个 crate 检索终端宽度(和高度)就像这样简单:

fn main() {
    let (x, y) = termion::terminal_size().unwrap();
    let termsize::Size {rows, cols} = termsize::get().unwrap();
    println!("          width  height");
    println!("termion:  {:4}    {:4}", x, y);
    println!("termsize: {:4}    {:4}", cols, rows);
}

【讨论】:

    猜你喜欢
    • 2017-05-18
    • 2012-10-21
    • 1970-01-01
    • 2011-10-16
    • 2018-01-14
    • 1970-01-01
    • 2013-02-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多