草庐IT

ruby - Gets.chomp 输入比较返回错误

我正在使用ruby错误:整数与字符串的比较失败(ArgumentError)puts"Age:"age=gets.chompif0我希望程序允许用户输入0(不包括)和130(包括)之间的所有数字。怎么做? 最佳答案 输入是一个字符串。尝试这样的事情puts"Age:"user_input=gets.chompbeginage=Integer(user_input)#yourcoderescueArgumentErrorputs"Agemustbeaninteger"end 关于ruby-

ruby - 使用 STDIN.gets 时的多行输入问题

看过this问题,我有以下代码:$/="\0"answer=STDIN.gets现在,我希望这将允许用户:输入多行输入,按Ctrl-D终止。输入单行输入,按Ctrl-D终止。输入“无”输入,按Ctrl-D终止。但是,我实际看到的行为是:用户可以输入多行输入法。用户不能不输入单行输入,除非他们按Ctrl-D两次。如果用户立即按下Ctrl-D,则可以输入“无”。那么,为什么单行情况(即如果用户输入了一些文本但没有换行然后按Ctrl-D)需要按两次Ctrl-D?如果用户什么都不输入,为什么它会起作用呢?(我注意到,如果他们什么都不输入并按下Ctrl-D,我不会得到一个空字符串,而是nil类-

ruby - gets 和 readline 有什么区别?

据我所知,他们都可以从控制台读取。我知道gets也可以从文件中读取,但我对控制台输入感兴趣。示例:a=readline.chompputsaa=gets.chompputsa这给了我相同的输出。那么控制台输入有什么区别呢? 最佳答案 来自ruby-doc.org关于Kernel#readline:EquivalenttoKernel::gets,exceptreadlineraisesEOFErroratendoffile.gets在输入结束时返回nil。你可以很容易地看出区别:echo-n""|ruby-e"gets"#noerr

ruby - gets.chomp 不换行

我了解puts和gets末尾自动出现的\n,以及如何处理它们,但有没有办法保持显示点('光标位置',如果你愿意的话)在使用gets输入输入后移动到新行?例如print'Hello,mynameis'a=gets.chompprint',what'syourname?'最终看起来像你好,我叫耶利米,你叫什么名字? 最佳答案 您可以通过使用(非常缺乏记录的)getch来做到这一点:require'io/console'require'io/wait'loopdochars=STDIN.getchchars引用资料:http://ruby

ruby - 等待调用 Ruby gets 的 Bash 脚本中的输入

我有一个使用一些Heroku客户端命令的Bash脚本,例如herokucreate。这些命令是用Ruby和includecalls编写的至IO::gets收集用户名和密码。但是,如果从Bash脚本中调用它们,它似乎会推进到最后一次获取。例如,在Heroku客户端要询问电子邮件和密码的情况下,第一个被跳过,用户只能输入他们的密码:EnteryourHerokucredentials.Email:Password:_有没有办法修复或临时安装Bash脚本以防止这种情况发生(当从命令行手动运行完全相同的命令时不会发生这种情况。)或者必须在Ruby中更改的内容?[更新-解决方案]我没能解决上面的

ruby - 将 Hex STDIN/ARGV/gets 转换为 ruby​​ 中的 ASCII

我的问题是如何将cmdARGV的STDIN或从十六进制转换为ascii我知道如果我将十六进制字符串分配给变量,它会在我打印后转换前hex_var="\x41\41\x41\41"putshex_var结果会是AAAA但我需要通过(ARGV或gets)从命令行获取值说我有这行s=ARGVputss#anotherideaputss[0].gsub('x','\x')然后我跑了rubygett.rb\x41\x41\x41\x41我得到了\x41\x41\x41\x41有没有办法让它工作? 最佳答案 您在这里要处理几个问题。您已经尝试解

Ruby:具有默认值的 gets.chomp

有没有一些简单的方法可以在提供默认值的同时要求Ruby中的用户输入?在bash中考虑这段代码:functionask_q{localPROMPT="$1"localDEF_V="$2"read-e-p"$PROMPT"-i"$DEF_V"REPLYecho$REPLY}TEST=$(ask_q"Areyouhungry?""Yes")echo"Answerwas\"$TEST\"."你能用Ruby的gets.chomp实现类似的行为吗?functionask_q(prompt,default="")putspromptreply=gets.chomp()#???returnreplyd

我认为 Ruby 无法识别 gets.chomp?

我是编程新手,是通过LearnRubyTheHardWay一书开始使用Ruby的。我正在进行练习13,我只是在摆弄在同一个脚本中使用ARGV和gets.chomp。我的代码如下:first,second,third=ARGVputs"Yourfirstvariableis:#{first}"puts"Yoursecondvariableis:#{second}"puts"Yourthirdis:#{third}"print"Wasthatsodifficult?"answer=gets.chompprintanswer显然,这不是一个脚本那么难,但是当我运行它时,我不断收到这个错误:“

ruby - gets.chomp 在 ruby​​ 中的一个函数中

我正在学习“艰难地学习Ruby”,在练习20中有一段我不理解的代码片段。我不明白为什么在函数“print_a_line”中对f调用gets.chomp。input_file=ARGV.firstdefprint_all(f)putsf.readenddefrewind(f)f.seek(0)enddefprint_a_line(line_count,f)puts"#{line_count},#{f.gets.chomp}"endcurrent_file=open(input_file)puts"Firstlet'sprintthewholefile:\n"print_all(curre

ruby - 如何将 'gets' 输入放入数组?

Ruby菜鸟在这里学习技巧。我目前正在浏览thistutorial并且正在做这个练习:Let'swriteaprogramwhichasksustotypeinasmanywordsaswewant(onewordperline,continuinguntilwejustpressEnteronanemptyline),andwhichthenrepeatsthewordsbacktousinalphabeticalorder.我暂时忽略字母顺序部分。这是我的代码:puts'Hi,doyouneedsomethingsorted?'yn=gets.chompwhileyn!='no'p