Pergunta

Estou lendo um arquivo linha por linha em um programa simples e quando imprimo as linhas na tela a última linha não pode ser vista na janela de saída do Netbeans 6.5.1 IDE no Windows XP mas quando executo o programa diretamente da linha de comando como "ruby main.rb" não há problema (ou seja, a última linha pode ser vista). Estou usando Ruby 1.8.6. Aqui está o código completo:

File.open("songs.txt","r") do |file|
  file.each do |line|
    print line
   end
end
Foi útil?

Solução

Isso funcionará melhor se você usar puts que acrescentará um terminador de nova linha se ainda não houver um no final da linha, forçando uma liberação de buffer.

Outras dicas

Eu nunca me deparei com isso antes, mas meu palpite é que sua linha final não tem uma quebra de linha final, então o console do Netbeans não está liberando a linha.Tente adicionar $stdout.flush no final do programa e veja o que acontece.

A propósito, você pode simplificar um pouco esse código reescrevendo-o usando foreach:

File.foreach("songs.txt","r") do |file|
  print line
end
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top