puts "Hello! Reading temperature value from data file..."
num = File.read("temp.dat")
puts "The number is #{num}..."
celsius = num.to_i
fahrenheit = (celsius.to_i * 9 / 5) + 32
puts "The Fahrenheit value is: #{ fahrenheit }."
在第三行中,...
块之后的#{num}
以新行打印。我的印象是使用该块将参数传递给显示器,以便更容易格式化。
为什么圆点会换到新的一行?
答案 0 :(得分:5)
当您阅读文件时,您也会获得换行符。也许你正在寻找的是:
celsius = File.readlines("temp.dat").first.to_i
puts "The number is #{celsius}..."
如果您看一下您正在阅读的内容,可能会有意义:
puts num.inspect
# => "20\n"
答案 1 :(得分:3)
推测temp.dat以换行符结尾,num
包含换行符。要删除换行符,可以使用String#chomp
方法,该方法删除字符串末尾的任何换行符。
答案 2 :(得分:2)
我的猜测是换行符来自文件
如果是这种情况那么
puts "The number is #{num.strip}..."
应该修复它。
答案 3 :(得分:0)
当您读取文件时,您还在读取文件中的回车符/换行符。使用String#chomp
去除这个额外的不需要的空格:
num = File.read("temp.dat").chomp
puts "The number is #{num}..."
有关详细信息,请参阅http://ruby-doc.org/core/classes/String.html#M001188。
答案 4 :(得分:0)
由于您尝试读取整数,因此我从文件中读取单个数字的最简单方法是:
File.read('temp.dat').to_i
# => 42
to_i
将解析,直到第一个非数字为" \ n"。此时它将停止读取并仅返回转换为整数的值。
这样做可以让您清理代码并将其缩小为:
puts "Hello! Reading temperature value from data file..."
celsius = File.read("temp.dat").to_i
puts "The number is #{ celsius }..."
fahrenheit = (celsius * 9 / 5) + 32
puts "The Fahrenheit value is: #{ fahrenheit }."
这不是一般阅读文件的方式,它只是这个特定问题的答案。