Rust 使控制台宽度生锈

Rust 使控制台宽度生锈,rust,console,Rust,Console,当我们对输出进行换行以使其在视觉上令人愉悦时,了解控制台窗口或至少缓冲区宽度会很有帮助 关于如何做到这一点,我们有很多答案,C#甚至有一些特性使这项任务变得简单。但是生锈 我可以用什么来获取这些信息,还是让用户决定我的程序在哪里包装输出?有多个板条箱可以确定终端宽度。使用哪一种可能取决于每种情况的确切相关要求。一个好的起点可能是签出,它还提供了一系列其他有用的低级终端处理功能 正如上面链接的页面所示,它支持多种平台。但是,Microsoft Windows上的任何人都应该注意,没有提到他们的平台

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

关于如何做到这一点,我们有很多答案,C#甚至有一些特性使这项任务变得简单。但是生锈


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

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

正如上面链接的页面所示,它支持多种平台。但是,Microsoft Windows上的任何人都应该注意,没有提到他们的平台:

还有板条箱,它只不过是为了确定终端尺寸。这个板条箱有更广泛的平台支持,并且可以与Microsoft Windows一起使用

更新
Cargo.toml
依赖项后,使用这两个板条箱检索码头宽度(和高度)非常简单:

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);
}

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

正如上面链接的页面所示,它支持多种平台。但是,Microsoft Windows上的任何人都应该注意,没有提到他们的平台:

还有板条箱,它只不过是为了确定终端尺寸。这个板条箱有更广泛的平台支持,并且可以与Microsoft Windows一起使用

更新
Cargo.toml
依赖项后,使用这两个板条箱检索码头宽度(和高度)非常简单:

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);
}

至于C和C++,你需要特定的OS特性,你应该看看CRATESIO来找到一些东西,这将帮助你找到三个看起来有趣的板条箱。谢谢至于C和C++,你需要特定的OS特性,你应该看看CRATESIO来找到一些东西,这将帮助你找到三个看起来有趣的板条箱。谢谢