Ruby 为什么这三个点写在一条新线上?

Ruby 为什么这三个点写在一条新线上?,ruby,string,format,Ruby,String,Format,在第三行中,在#{num}块之后的..以新行打印。我的印象是,使用该块就是将参数传递给显示器,从而更容易格式化 为什么点会指向新行?当你在文件中阅读时,你也会看到新行。也许你要找的是: puts "Hello! Reading temperature value from data file..." num = File.read("temp.dat") puts "The number is #{num}..." celsius = num.to_i fahrenheit = (celsius

在第三行中,在
#{num}
块之后的
..
以新行打印。我的印象是,使用该块就是将参数传递给显示器,从而更容易格式化


为什么点会指向新行?

当你在文件中阅读时,你也会看到新行。也许你要找的是:

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 }."
如果你看一看你正在阅读的内容,可能会有意义:

celsius = File.readlines("temp.dat").first.to_i
puts "The number is #{celsius}..."

假设temp.dat以换行符结尾,
num
包含换行符。要删除换行符,可以使用
String#chomp
方法,删除字符串末尾的任何换行符。

我猜换行符是从文件中输入的

如果是这样的话

puts num.inspect
# => "20\n"

应该修复它。

当您读取文件时,您也在读取文件中的回车/换行符。使用
String#chomp
去除多余的空白:

num=File.read(“temp.dat”).chomp
将“数字为#{num}…”

有关更多信息,请参阅。

由于您正在尝试读取整数,因此我知道从文件中读取单个数字的最简单方法是:

puts "The number is #{num.strip}..."
将一直解析到第一个非数字,即“\n”。此时,它将停止读取并仅返回转换为整数的值

这样做可以清理代码并将其简化为:

File.read('temp.dat').to_i
# => 42

一般来说,这不是如何读取文件,它只是对这个特定问题的回答。

因为文件
temp.dat
末尾包含换行符?如果您是调试Ruby的新手,您可能需要查看
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 }."