打开irb
并执行以下操作:
- 输入
gets
。它应该可以正常工作。 - 然后尝试
system("choice /c YN")
,它应该按预期工作。 - 现在再次尝试
gets
,它的行为很奇怪。
有人能告诉我这是为什么吗?
编辑:为了澄清“奇怪”的行为,它允许我输入gets
,但不显示字符,我必须按两次回车键。
打开irb
并执行以下操作:
gets
。它应该可以正常工作。system("choice /c YN")
,它应该按预期工作。gets
,它的行为很奇怪。有人能告诉我这是为什么吗?
编辑:为了澄清“奇怪”的行为,它允许我输入gets
,但不显示字符,我必须按两次回车键。
Esc[5;45m
了吗?那将使所有接下来的输出闪烁在品红背景上。还有很多类似的内容。choice
命令使用特殊的转义序列搞乱了输出模式,而ruby的gets则无法在终端操作的奇怪特殊模式下正常运行。
但更有用的将是链接到HighLine gem文档。为什么要实现特定于平台和侵入式行为,当可以使用约12 LOC实现相同的功能呢?对于Gist的所有尊重都归功于botimer,我只是在搜索中偶然发现了他的代码。
system("choice /c YN")
命令后按两次回车键,否则它不会接受数据。有时候也会多输入一个字母。你那边是不是也是这样的情况? - KChaloux