我正在尝试将文件作为输入,在程序中更改它,并将结果保存到输出的文件中。但输出文件与输入文件相同。 :/总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
答案 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"}