2012-08-09 2 views
1

Ruby를 사용하기로 결심했습니다.하지만 지금까지는 어려운 상황이었습니다. 오래 전에 필자는 배열에 데이터를 저장하고 검색 키워드가 포함되어 있는지 확인하는 Python을 배우면서 "검색 엔진"을 만들었으며 Ruby에서도 동일한 작업을 수행하려고 노력했습니다.Ruby가 올바른 문자열을 반환하지 않습니다.

파이썬 에서처럼 직관적이지는 않지만 검색 기능이 작동합니다. 그래도 사용자 입력 작업에 문제가 있습니다. 입력이 인 경우, 검색이 종료되면이 종료되는지 확인하고 싶지만 작동하지 않습니다. get을 사용하는 방법을 알지 못하기 때문에 문제는 도착과 관련 있다고 가정합니다.

while true 
    puts 'What do you want to do?' 
    choice = $stdin.gets 

    puts choice # => quit 

    if choice == 'quit' 
    break 
    end 
end 

경우 문이 작동하지 않습니다. 내가 뭐 잘못하고있는거야? 이건 사소한거야 C++ 세상에!

정말 도움이됩니다. 루비는 내게 너무 외국 ... 감사합니다!

답변

6

입력 내용의 끝에 개행 문자가 포함되어 있다고 생각합니다. gets.chomp를 사용해보십시오 대신

irb(main):001:0> input = $stdin.gets 
hello 
=> "hello\n" 
irb(main):002:0> input = $stdin.gets.chomp 
hello 
=> "hello" 
1

davidrac이 올바른지, 당신은 here

문제는에서의 입력에 개행 문자를 받고 있습니다에서 답을 인용 \n

을 잘라 필요 사용자. 그들은 "y"를 입력하는 동안 실제로 "y \ n"을 얻습니다. 문자열에 "chomp"메소드를 사용하여 개행을 작게 할 필요가 있습니다.