2014-02-07 2 views
0

내가 gets 문자열로 반환 x 또는 y의 정수 저장하는 것을 시도하고있다 :문자열에서 정수로 입력하는 변수를 어떻게 변경합니까?

def add(a, b) 
    puts "Adding #{a} + #{b}" 
    a + b 
end 

def sub(a, b) 
    puts "subtracting #{a} - #{b}" 
    a - b 
end 

def mult(a, b) 
    puts "multiplying #{a} * #{b}" 
    a * b 
end 

def div(a, b) 
    puts "dividing #{a}/#{b}" 
    a/b 
end 

x = STDIN.gets.chomp 
y = STDIN.gets.chomp 
puts add(x,y) 

내가 프로그램에서 얻을 응답은 다음과 같습니다

23 
43 
Adding 23 + 43 
2343 
+1

문제는 ['gets'] (http://www.ruby-doc.org/core-2.1.0/Kernel.html#method-gets) * ONLY *는 문자열을 반환합니다. 문자열 외에는 개념이 없으며 기본적으로 읽히는 콘솔도 없습니다. 그 가치를 다른 것으로 만드는 것은 당신에게 달려 있습니다. –

답변

1

과 함께 정수로 변환을 to_i :

x = gets.to_i 
y = gets.to_i 
puts add(x,y) 

STDIN.gets은 명령 행 인수를 전달하지 않는 한 gets은 기본적으로 STDIN에서 읽습니다.

관련 문제