2017-02-15 5 views
0

Ich habe myscr Datei:Textdatei ist falsch gelesen (teilweise)

#!/usr/bin/env ruby 

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

puts $stdin.read.inspect 

Wenn ich Befehl ausführen:

cat foo.txt | ruby mysrc 

Ich habe folgende Ausgabe:

char 
o 
char 

char 
a 
char 

char 
a 
char 

"" 

wie Sie also kann sehen, es beginnt nicht mit dem ersten Zeichen, auch aus irgendeinem Grund dreht sich die ganze Kette von .read leer sein, sowie einige Zeichen aus .getc, und einige sind korrekt

Antwort

1

Aufruf getc zweimal versucht, zwei Zeichen zu holen. Vielleicht, was du meinst ist:

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

nun alle Zeichen, die Sie verbraucht gelesen haben, so dass Sie sie retten benötigen, wenn Sie diejenigen, für die spätere Eingabe verwenden möchten.

+0

danke, ich wollte im Grunde Datei für Zeichen lesen, nein, um es im Speicher zu laden, ist es ein kniffliges Ergebnis –

Verwandte Themen