2010-07-08 2 views
0

저는 Ruby의 입력 내용과 약간 혼동합니다.Ruby 입력 - 이상한가요?

입력을 시도 할 때마다 '백 스페이스'키가 등록되지 않습니다. 또한 처음으로 'Enter'를 허용하지 않습니다. 나는 실제로 그것을 입력하기 전에 일반적으로 3 번 입력 후 항상 'Enter'키를 눌러야합니다. 예를 들어

,

소스보기 인쇄? 1 my_var = gets.chomp

'Hello'를 입력하려면 실제 입력하기 전에 return 키를 3 번 ​​눌러 입력해야합니다.

는 지금은

소스보기 인쇄 ... 사용하여이 문제를 해결하는 방법을 발견했다? 1 STDOUT.flush 2 my_var = gets.chomp

하지만 ...

1) 이것은 이상한 내가 입력을 원하는 전에 매번 입력 할 필요가 보인다?

2) 백 스페이스 등록의 문제는 여전히 해결되지 않습니다.

나는 그러나 이와 같은 두 개의 실수로 키 입력에 직접 '안녕하세요'를 입력 인 경우 : 안녕하세요 Worpold

내가 입력 한대로 나타 그래서 내가 백 스페이스를 사용하더라도 : 안녕하세요

하는 경우를 그런 다음 출력 할 '풋'또는 '인쇄'로 이동했습니다. Hello Worpold

백 스페이스를 허용하고 STDOUT.flush을 놓치는 다른 방법을 어떻게 알 수 있습니까? 사전에

덕분에

+0

'ruby' 또는'irb'을 사용하고 있습니까? –

답변

1

readline 모듈을 사용합니다.

1

Ruby를 실행하는 환경은 무엇입니까? 당신이 확실하지 않은 경우, ruby -v

>ruby -v 
ruby 1.8.6 (2008-08-11 patchlevel 287) [i386-mswin32] 

내가

a = gets 
puts "I just got #{a}" 

가 C에 위의 코드를 저장 한 Windows XP에서 v1.8.6을 실행 해요 확인 : \ temp.rb 및 ruby c:\temp.rb 으로 실행 백 스페이스 키가 작동합니다. 입력을 확인하기 위해 입력을 한 번하기 전에 문자열을 수정할 수 있습니다.