0

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

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

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

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
4

1 回答 1

0

编写您的代码,如:

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'sFile.open挡住了路。当该块退出时,文件将自动关闭文件。不要使用非阻塞形式,除非你绝对肯定你知道为什么你应该用另一种方式来做。

chomp您从中获得的价值gets。这是因为gets在看到尾随的 END-OF-LINE 之前不会返回,这通常是 Mac OS 和 *nix 上的“\n”,或 Windows 上的“\r\n”。未能删除它chomp是导致不知情的开发人员大量哭泣和咬牙切齿的原因。

该程序的其余部分留给您自己解决。

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

使用read是不好的形式,除非您绝对肯定该文件将始终适合内存,因为将立即读取整个文件。一旦它在内存中,它将是一大串数据,所以你必须弄清楚如何将它分解成一个数组,以便你可以迭代它。有比read我学习 IO 类更好的方法来处理阅读,再加上阅读你可以在 Stack Overflow 上找到的内容。提示:不要啜食你的文件。

于 2013-09-12T23:37:50.710 回答