我一直在用STDIN.gets
从ruby的stdin读取字符串,但是我只是注意到这些字符串必须短于1024个字符。以下方法都不会读取长度超过1024个字符的字符串:
STDIN.gets
STDIN.gets(2000)
STDIN.read
STDIN.readline
实际上,解释器甚至不允许发送完整的1024个字符,因为它需要添加换行符,因此用户最多只能键入1023个字符并按return
。
您可以将字符串分成多行,然后再删除换行符,但是这些字符串很可能会被复制/粘贴,因此这样做是不可行的,除非有一种方法可以使解释程序自动执行
如何读取长度超过此1024个限制的字符串?
答案 0 :(得分:0)
Readline宝石似乎没有此限制。在我的测试中,行数超过1400个字符没有造成问题。我的版本mini_readline也是如此。我怀疑这是由于这两个gem都在原始模式下运行TTY并在Ruby中进行缓冲,编辑等,而不使用系统缓冲。