我的问题是 - 我假设$stdin.read
一次将整个输入字符串加载到内存中,而.getc
一次只加载一个字符。
这是对的吗,我不确定?
答案 0 :(得分:0)
从I / O流中读取长度字节。
长度必须是非负整数或
nil
。如果 length 是一个正整数,它会尝试读取 length 字节而不是 任何转换(二进制模式)。它返回
nil
或 length 的字符串 是1到长度字节。零意味着它在开始时遇到了EOF。 1到 length-1字节字符串表示在读取结果后满足EOF。该 length 字节字符串表示它不符合EOF。结果字符串是 始终是ASCII-8BIT编码。如果 length 被省略或是
nil
,则读取直到EOF和编码 转换已应用。即使满足EOF,它也会返回一个字符串 开始。如果 length 为零,则返回
""
。如果存在可选的outbuf参数,则必须引用a 字符串,它将接收数据。 outbuf将只包含 方法调用后接收数据,即使它不是空的 开始。
在文件末尾,它会返回
nil
或""
,具体取决于长度。ios.read()
和ios.read(nil)
返回""
。ios.read(positive-integer)
会返回nil
。
从ios读取一个字符的字符串。如果在结束时调用,则返回nil 文件。