使用seek("cur",-1)从末尾开始遍历txt文件时,当遇到一个新行时,连续两个"\n"为什么?

我用"#"测试了"\n",长度为1,当我用f:read(1)读取"\n"时,它只被执行了一次。这是一个奇怪的情况。

这是代码:

function exercise7_5(inputfile,cnt)
  cnt=cnt or 1
  local inputF=io.open(inputfile,"r")
  local spcnt,seeknow=0,0
  seeknow = inputF:seek("end")
  repeat
    seeknow = inputF:seek("cur",-1)
    local linecheck=inputF:read(1)
    seeknow=inputF:seek("cur",-1)
    print("seeknow"..seeknow)
    if linecheck=="\n" then
      spcnt=spcnt+1
      seeknow = inputF:seek("cur",-1)
      print("seeknow huan"..seeknow)
    end
  until spcnt==cnt or seeknow==0
  if seeknow~=0 then
    inputF:seek("cur",2)
  end
  local ansstr=inputF:read("a")
  inputF:close()
  return ansstr
end
print(exercise7_5("fnamea.txt",2))
点赞