C - fof()在实际结束前一行检测文件结束

  • 本文关键字:结束 文件 一行 fof scanf feof
  • 更新时间 :
  • 英文 :


我有一个函数,它应该读取文件并检测文件何时结束。

函数当前只读取倒数第二行并结束。谁能告诉我我做错了什么,因为我自己看不出来:

int readIn(TinCan* inCan, int toggle)
  {
  int ii, isFinished = 0;
  char fullName[20];
  sprintf(fullName, "Label_%d.txt", inCan->pid);
  FILE* fp; 
    fp = fopen(fullName, "r");
    if(fp==NULL) 
      {
      printf("Error: could not open %sn", fullName);
      }
    else
      {
      for (ii=0; ii < ((inCan->ac)-1); ii++)
        {
        fscanf(fp, "%*d %*d %*dn"); /*move through lines without scanning*/
        }
      fscanf(fp,"%d %d %d", &inCan->ac, &inCan->state, &inCan->time);
      }
    if (feof(fp) && (toggle == 1)) 
      {
      printf("File ended"); 
      writeLog(inCan);
      isFinished = 1;
      terminated++;
      }
  fclose(fp);
  return finished;
  }

我希望你的程序有一个类似的循环:

while (!feof(fp)) {
...
    fscanf(fp, "%*d %*d %*dn");
...
}

相关内容

  • 没有找到相关文章

最新更新