2012-01-11 5 views
1

디렉토리를 생성하고 콘솔 입력을 사용하여 이름을 지정하는 루비 프로그램을 작성하려고합니다.Extra gets를 사용하여 콘솔 I/O의 문자

1 #!/usr/bin/env ruby¬ 
2 ¬                   
3 puts 'HW date, format MM-DD:'¬ 
4 ¬ 
5 directory_name = 'hw_' + gets¬ 
6 ¬ 
7 begin¬ 
8 ▸ if File::directory?(directory_name)¬ 
9 ▸ ▸ return¬ 
10 ▸ end¬ 
11 ▸ Dir.mkdir(directory_name)¬ 
12 end¬ 

그러나 생성 된 지시문은 항상 끝에 가비지 문자가 있습니까?

$ ./start_hw.rb 
HW date, format MM-DD: 
01-13 
$ ls 
hw_01-13? start_hw.rb 

어떻게하면 멈추게합니까? (즉, 인쇄 할 수없는 문자)

답변

4

루비 gets 함수는 끝에 행 끝 문자를 반환하므로 문자를 제거하려면 chomp을 사용해야합니다.

directory_name = 'hw_' + gets.chomp 
puts directory_name.inspect # print it to make sure there is no junk