2017-02-15 74 views
0

我有myscr文件:文本文件读取错误(部分)

#!/usr/bin/env ruby 

while $stdin.getc 
    puts "char \n" 
    puts $stdin.getc 
end 

puts $stdin.read.inspect 

当我执行命令:

cat foo.txt | ruby mysrc 

我有以下的输出:

char 
o 
char 

char 
a 
char 

char 
a 
char 

"" 

所以你可以看到,它不是以第一个字符开始,而且由于某种原因,整个字符串的轮数为.read以及.getc以及一些正确的字符

回答

1

调用getc两次尝试获取两个字符。也许你的意思是:

while (char = $stdin.getc) 
    puts "Char: %s" % char 
end 

现在你读过消耗任何字符,所以你需要保存他们,如果你想使用那些后来的输入。

+0

谢谢,我基本上是想按字符读取文件,没有在整个内存中加载它,这是棘手的结果 –