julia中用户输入读取不返回

Luc*_*res 0 io julia

使用read(STDIN)或时readlines(),该函数仅在按回车键后接收文本。如何只输入一个字母而不等待返回?

hck*_*ckr 5

这与 Julia 无关,而是与您的环境有关。终端缓冲字符,直到看到\norEOF字符,然后将字符放入 中STDIN。您可以通过raw mode直接将按下的字符发送到 来绕过此行为STDIN。在 Julia 中,您可以通过使用 进行系统调用来完成此操作run。如果您使用的是 Linux,则以下内容有效:

run(`stty raw`)
read(STDIN, Char)
Run Code Online (Sandbox Code Playgroud)

您可以返回到(可能)默认模式

run(`stty cooked`)
Run Code Online (Sandbox Code Playgroud)