如何在Ruby中创建此文件输入和输出分配

我有一项任务,我不知道该怎么做。 想知道是否有人可以提供帮助。 就是这个:

创建一个程序,允许用户输入他们今天锻炼的小时数。 然后程序应该输出他们一直锻炼了多少小时的总和。 为了允许程序在第一次运行之后持续存在,需要从文件中写入和检索总运动时间。

到目前为止我的代码是这样的:

myFileObject2 = File.open("exercise.txt") myFileObjecit2.read puts "This is an exercise log. It keeps track of the number hours of exercise." hours = gets.to_f myFileObject2.close 

写下你的代码:

 File.open("exercise.txt", "r") do |fi| file_content = fi.read puts "This is an exercise log. It keeps track of the number hours of exercise." hours = gets.chomp.to_f end 

Ruby的File.open需要一个块。 当该块退出时,File将自动关闭该文件。 不要使用非阻止forms,除非你是绝对肯定的,你知道为什么你应该采取另一种方式。

chomp你获得的价值。 这是因为gets它看到尾随的END-OF-LINE之前不会返回,这通常在Mac OS和* nix上为“\ n”,在Windows上为“\ r \ n”。 在没有意识到的开发人员的情况下,没有用chomp去除它是导致牙齿大量哭泣和咬牙切齿的原因。

程序的其余部分留给你弄清楚。

如果“exercise.txt”尚不存在,代码将失败。 你需要弄清楚如何处理它。

使用read是不好的forms,除非你绝对肯定文件总是适合内存,因为整个文件将被立即读取。 一旦它在内存中,它将是一个大的数据串,所以你必须弄清楚如何将它分解成一个数组,以便你可以迭代它。 有更好的方法来处理读取而不是read所以我将研究IO类,并阅读Stack Overflow上可以找到的内容。 提示:不要啜饮你的文件。