Ruby: вывод не сохранен в файл - PullRequest
0 голосов
/ 20 марта 2011

Я пытаюсь дать файл в качестве входных данных, изменить его в программе и сохранить результат в файл, который выводится. Но выходной файл совпадает с входным файлом. : / Всего вопрос 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 ]

1 голос
/ 20 марта 2011

Я проверил код на моей машине, и у меня правильно есть файл "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
0 голосов
/ 20 марта 2011

Как насчет:

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"}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...