2014-02-07 39 views
0

我試圖存儲在xy一個整數,gets返回一個字符串:如何將輸入的變量更改爲字符串中的整數?

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-i-gets)* ONLY *返回一個字符串。除了一個字符串,它沒有任何概念,默認情況下,'gets'讀取的控制檯也不是。這取決於你如何使這個價值成爲別的東西。 –

回答

1

它轉換爲整數to_i

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

請注意,不需要使用STDIN.gets,只要你沒有通過任何命令行參數,因爲gets默認從STDIN讀取。

相關問題