ruby在cygwin终端中读取字符

发布于 2024-12-02 22:34:20 字数 282 浏览 0 评论 0原文

我正在尝试在 cygwin 中运行的红宝石中一次读取一个字符。

STDIN.getc 返回字符,但仅在我按下 Enter 键后才返回:

STDOUT.sync = true
while true
    STDIN.getc
    puts "HELLO"
    STDOUT.flush
end

测试会话:

aa
HELLO
HELLO
HELLO

如何读取字符?

I'm trying to read one character at a time in a ruby running in cygwin.

STDIN.getc returns the characters but only after I pressed enter:

STDOUT.sync = true
while true
    STDIN.getc
    puts "HELLO"
    STDOUT.flush
end

test session:

aa
HELLO
HELLO
HELLO

How can I read a character?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

下壹個目標 2024-12-09 22:34:20

使用io-console,在Ruby1.9.3以后

require 'io/console'

# input 3 chars and escape

buf = ''
3.times do
  buf << STDIN.getch
end

print "Your input is '#{buf}'"

use io-console, at later Ruby1.9.3

require 'io/console'

# input 3 chars and escape

buf = ''
3.times do
  buf << STDIN.getch
end

print "Your input is '#{buf}'"
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文