gpt4 book ai didi

ruby 控制台 : How to Keep 'gets' from adding a new line when the user inputs

转载 作者:太空宇宙 更新时间:2023-11-03 16:31:51 26 4
gpt4 key购买 nike

为什么 gets 总是在用户输入框数时添加一个新行?

我希望下一个打印语句与输入显示在同一行。

    print "Enter the number of boxes: "
boxes = gets.chomp
print "Enter number of columns to print the boxes in: "
columns = gets.chomp

我希望输出看起来像这样:

Enter the number of boxes: 47 Enter number of columns to print the boxes in: 4

在收到第二个输入之前,我不想开始新的一行。

最佳答案

您需要使用 IO/console 并一次输入一个字符:

require 'io/console'

def cgets(stream=$stdin)
$stdin.echo = false
s = ""
while true do
c = stream.getc
return s if c == "\n"
s << c
end
end

问题是回显输入;在字符不是换行符时将其取出有点问题(至少在本地,而不是在我的常规机器上)。此外,由于您是手动获取字符,因此它会删除正常的 readline 功能,因此行为将取决于系统,例如,Unixy 系统可能会丢失退格键等。

就是说,糟糕; IMO 在控制台上这是一个意想不到的 UI 模式,将输入保持在两行上更明显,也更常见。

关于 ruby 控制台 : How to Keep 'gets' from adding a new line when the user inputs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14671751/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com