[ruby] Ruby의 콘솔에서 입력을 읽습니까?

루비로 간단한 A + B 프로그램을 작성하고 싶지만 콘솔로 작업하는 방법을 모르겠습니다.



답변

당신은 말하고 gets있습니까?

puts "Enter A"
a = gets.chomp
puts "Enter B"
b = gets.chomp
c = a.to_i + b.to_i
puts c

그런 거요?

최신 정보

Kernel.gets에서 찾은 매개 변수를 읽으려고 시도하고 찾을 ARGV수없는 경우에만 콘솔을 요청합니다 ARGV. ARGV비어 있지 않은 경우에도 콘솔에서 읽도록 강제하려면STDIN.gets


답변

명령 줄을 통해 매개 변수를 전달할 수도 있습니다. 명령 줄 인수는 ARGV 배열에 저장됩니다. 따라서 ARGV [0]은 첫 번째 숫자이고 ARGV [1]은 두 번째 숫자입니다.

#!/usr/bin/ruby

first_number = ARGV[0].to_i
second_number = ARGV[1].to_i

puts first_number + second_number

그리고 당신은 이것을 이렇게 부릅니다

% ./plus.rb 5 6
==> 11


답변

사용자로부터 입력을받는 방법에는 여러 가지가 있습니다. 나는 개인적으로 방법을 사용하는 것을 좋아합니다. gets를 사용
하면 입력 한 문자열 을 가져 오며 여기에는 입력 을 끝내기 위해 누른 ENTER 키가 포함됩니다 .

name = gets
"mukesh\n"

irb 에서 이것을 볼 수 있습니다 . 이것을 입력하면 ENTER 키가 생성하는 “개행”문자 인 \ n name = gets이 표시됩니다 . 입력 하면 다음과 같은 내용이 표시됩니다 . chomp 방법을 사용하여 "mukesh\n"
성가신 개행 문자를 제거 할 수 있습니다 .

chomp 메서드는 문자열을 되돌려 주지만 줄 바꿈을 끝내지 않습니다. 아름다운 씹는 방법 생명 구세주.

name = gets.chomp
"mukesh"

터미널을 사용하여 입력을 읽을 수도 있습니다. ARGVObject 클래스에 정의 된 상수 입니다. Array 클래스 의 인스턴스이며 모든 배열 메서드에 액세스 할 수 있습니다. 배열이기 때문에 상수 임에도 불구하고 문제없이 요소를 수정하고 지울 수 있습니다. 기본적으로 Ruby는 명령 줄 바이너리가 호출 될 때 Ruby 프로그램에 전달 된 모든 명령 줄 인수 (공백으로 분할)를 캡처하여 ARGV 배열에 문자열로 저장합니다 .

Ruby 프로그램 내에서 작성되면 ARGV 는 다음과 같은 명령 줄 명령을받습니다.

test.rb hi my name is mukesh

다음과 같은 배열을 만듭니다.

["hi", "my", "name", "is", "mukesh"]

그러나 제한된 입력을 전달하려면 다음과 같이 사용할 수 있습니다.

test.rb 12 23

프로그램에서 다음과 같은 입력을 사용하십시오.

a = ARGV[0]
b = ARGV[1]


답변

터미널의 인수를 유지하려면 다음 코드를 시도하십시오.

A = ARGV[0].to_i
B = ARGV[1].to_i

puts "#{A} + #{B} = #{A + B}"


답변

대화 형 콘솔을 만들려면 :

#!/usr/bin/env ruby

require "readline"
addends = []
while addend_string = Readline.readline("> ", true)
  addends << addend_string.to_i
  puts "#{addends.join(' + ')} = #{addends.sum}"
end

사용법 (위의 스 니펫을 summator현재 디렉토리의 파일에 넣었다고 가정 ) :

chmod +x summator
./summator
> 1
1 = 1
> 2
1 + 2 = 3

Ctrl + D종료하는 데 사용


답변