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

iyfjxgzm  于 2023-08-05  发布在  其他
关注(0)|答案(2)|浏览(106)

我将 The Rust Programming Language 中的代码复制粘贴到Rust Playground上的“Processing a Guess”标题下。但是,标准输出中没有显示提示。我已经搜索了这个问题,我认为这可能是the help lists的“限制”之一。
我已经决定,我应该使用一些软件,将帮助我的代码没有Playground,但我没有一个IDE设置,这不是我的问题的一部分,无论如何。
我尝试做的是将以下代码复制粘贴到RustPlayground:

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:


但是当我点击冒号右边的空白并开始输入时,没有新的字符串出现。
我是不是漏掉了什么重要的东西?

xjreopfe

xjreopfe1#

Playground做not currently accept user input via stdin。stdin实际上是立即关闭的,因此您的程序没有任何输入,并移动到下一行代码,打印“guess”,这只是一个空字符串。
这可能是帮助列表中的“限制”之一。
它不是,但可能应该是。
来源:我是Playground的创造者。

13z8s7eq

13z8s7eq2#

不幸的是,它不能接受来自终端的stdin上的任何输入,但有一些替代方案,如OnlineGDB,允许输入。

相关问题