立即从控制台获取单个字符

Sła*_*osz 23 ruby

一旦提供了STDIN,是否可以从STDIN中获取每个char(无需等待返回键)?

ten*_*rno 4

是的,有很多方法可以做到这一点,除了 gems 之外,您还可以通过 gems 直接操作 terminfo、termios、ncurses 或 stty 程序。

tty_param = `stty -g`
system 'stty raw'

a = IO.read '/dev/stdin', 1

system "stty #{tty_param}"

print a
Run Code Online (Sandbox Code Playgroud)