为什么需要用户输入的代码在Rust Playground中不起作用?

时间:2019-04-17 14:27:50

标签: rust

我将 The Rust Programming Language 中位于heading "Processing a Guess"下的代码复制粘贴到Rust Playground上。但是,标准输出中没有显示提示。我已经搜索了这个问题,我认为这可能是the help lists的“局限性”之一。

我决定我应该使用一些可以在没有Playground的情况下进行编码的软件,但是我还没有设置IDE,因此这也不是我的问题的一部分。

我试图做的是将以下代码复制粘贴到Rust操场上:

use std::io;

fn main() {
    println!("Guess the number!");

    println!("Please input your guess.");

    let mut guess = String::new();

    io::stdin().read_line(&mut guess)
        .expect("Failed to read line");

    println!("You guessed: {}", guess);
}

其结果是它将正确编译,而不会出现任何紧急攻击,错误或警告,并在“标准输出”中显示以下内容:

Guess the number!
Please input your guess.
You guessed: 

这本书清单2-1中的信息告诉我们,此代码应该能够从用户和进行猜测的打印件(作为字符串)中获取答案。

我的期望是,我将能够单击“标准输出”中显示以下内容的行:

You guessed: 

但是当我单击冒号右侧的空白并开始输入时,没有新的字符串出现。

我在这里错过了重要的东西吗?

1 个答案:

答案 0 :(得分:8)

游乐场执行not currently accept user input via stdin。 stdin实际上会立即关闭,因此您的程序将无任何输入,而是继续执行下一行代码,并打印“ guess”(即空字符串)。

  

这可能是帮助列出的“限制”之一。

不是,但应该是。

资料来源:我是游乐场的创造者。