programing

루비의 콘솔에서 입력을 읽으시겠습니까?

closeapi 2023. 6. 5. 23:56
반응형

루비의 콘솔에서 입력을 읽으시겠습니까?

루비로 간단한 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를 사용하는 것을 좋아합니다.gets를 사용하면 입력한 문자열과 입력을 끝내기 위해 누른 ENTER 키가 포함됩니다.

name = gets
"mukesh\n"

이것은 irb에서 볼 수 있습니다. 이것을 입력하면 ENTER 키가 생성하는 "새 줄" 문자인 \n이 표시됩니다.유형name = gets당신은 다음과 같은 것을 보게 될 것입니다."mukesh\n"chomp 방법을 사용하여 성가신 줄바꿈 문자를 제거할 수 있습니다.

chomp 메서드는 문자열을 반환하지만 종료되는 새 줄은 제공하지 않습니다.아름다운 촘프 방법 생명의 은인.

name = gets.chomp
"mukesh"

터미널을 사용하여 입력을 읽을 수도 있습니다. ARGVObject 클래스에 정의된 상수입니다.어레이 클래스의 인스턴스이며 모든 어레이 메서드에 액세스할 수 있습니다.배열이기 때문에 상수임에도 불구하고 요소를 수정하고 문제 없이 지울 수 있습니다.기본적으로 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퇴장

언급URL : https://stackoverflow.com/questions/6556280/read-input-from-console-in-ruby

반응형