2011-06-14 3 views
1

이 질문은 다소 간단합니다 (너무 가혹하지는 마십시오).하지만 코드가 아름다운 해결책을 얻을 수 없습니다. 다음 코드가 있습니다 :stdin에서 읽기 및 Ruby에서 stdout으로 인쇄

ARGF.each_line do |line| 
    arguments = line.split(',') 
    arguments.each do |task| 
    puts "#{task} result" 
    end 
end 

단순히 표준 입력 번호를 읽습니다.

echo "1,2,3" | ruby prog.rb 

원하는 출력은

1 result 
2 result 
3 result 

이다 그러나 실제 출력이 도입 개행 문자가있을 것 같다

1 result 
2 result 
3 
result 

이다 : 나는이 방법을 사용합니다. 내가 뭔가를 건너 뛰는거야?

+0

'puts task.inspect'는'task'에 개행 문자가 있음을 보여줍니다. –

답변

4

line은 개행 문자로 끝나기 때문에 쉼표로 구분하면 마지막 토큰은 3\n입니다. 이것을 인쇄하면 3 그리고 줄 바꿈이 인쇄됩니다.

봅니다 분할하기 전에 후행 줄 바꿈을 제거하려면

arguments = line.chomp.split(',') 

를 사용하여.

1

표준 입력에 후행 줄 바꿈 문자가 포함되어 있습니다. each_line 블록의 첫 번째 명령어로 line.chomp!을 호출 해보십시오.

관련 문제