rust 如何使cli以程序名而不是路径启动?

hof1towb  于 2022-12-19  发布在  其他
关注(0)|答案(1)|浏览(100)

当我输入cargo run时,我希望cmd提示符位于Project_ -〉处,然后等待命令。目前,当我输入cargo run时,它只是位于一个空行处,等待输入。当我输入一些内容并按Enter键时,我的输出是test Project_ -〉test如何让等待命令的行以Project_ -〉开始,然后等待命令?

fn main() {
    let mut run = true;
    let mut stdin = io::BufReader::new(io::stdin()).lines();
    let stdout = io::stdout();
    let mut handle = stdout.lock();
    
    while run {
        handle.write_all(b"Project_ -> ");
        
        {
            let arg = stdin.next().unwrap().unwrap();
            println!("{:?}", arg);

            if arg == "exit" {
                run = false
            }
        }

删除println!("{:?}", arg);会导致Project_ -〉根本不打印
反复按Enter键,然后键入exit,打印Project_ -〉,显示我按Enter键的次数。

htrmnn0y

htrmnn0y1#

通过在BufWriter中 Package 句柄并使用.flush()立即打印来修复。

fn main() {
    let mut run = true;
    let mut stdin = io::BufReader::new(io::stdin()).lines();
    let stdout = io::stdout();
    let mut handle = io::BufWriter::new(stdout.lock());

    while run {
        handle.write_all(b"Project_ -> ");
        handle.flush();

    
        let arg = stdin.next().unwrap().unwrap();
        // println!("{:?}", arg);
        if arg == "exit" {
            run = false
        }

相关问题