Ruby:输出未保存到文件

时间:2011-03-20 18:47:02

标签: ruby

我正在尝试将文件作为输入,在程序中更改它,并将结果保存到输出的文件中。但输出文件与输入文件相同。 :/总n00b问题,但我做错了什么?:

puts "Reading Celsius temperature value from data file..."
num = File.read("temperature.dat")
celsius = num.to_i
farenheit = (celsius * 9/5) + 32
puts "Saving result to output file 'faren_temp.out'"
fh = File.new("faren_temp.out", "w")
fh.puts farenheit
fh.close

2 个答案:

答案 0 :(得分:1)

我在我的机器上测试了代码,并且我正确地使用了“faren_temp.out”文件。什么都没有错?

<强> Temperature.dat

23

<强> faren_temp.out

73

你刚刚遇到问题。 “celsius”必须是一个浮点变量才能进行浮点除法(不是int除法)。

puts "Reading Celsius temperature value from data file..."
num = File.read("temperature.dat")
celsius = num.to_f # modification here
farenheit = (celsius * 9/5) + 32
puts "Saving result to output file 'faren_temp.out'"
fh = File.new("faren_temp.out", "w")
fh.puts farenheit
fh.close

<强> faren_temp.out

73.4

答案 1 :(得分:0)

怎么样:

puts "Reading Celsius temperature value from data file..."
farenheit = 0.0
File.open("temperature.dat","r"){|f| farenheit = (f.read.to_f * 9/5) + 32}
puts "Saving result to output file 'faren_temp.out'"
File.open("faren_temp.out","w"){|f|f.write "#{farenheit}\n"}