我想读一个长达10行的txt文件所有行的文件格式如下:

1 1 8
2 2 3
3 1 15
4 2 7

我正在尝试编写一个函数,它将只读取由传递给它的int提供的行我想使用for循环遍历行而不扫描任何内容,但是我不知道如何实现它。
到目前为止,我的函数看起来是这样的,for循环尚未正确实现。
void process(int lineNum, char *fullName)
  {
    int ii, num1, num2, num3;

    FILE* f;
    f = fopen(fullName, "r");

    if(f==NULL)
      {
      printf("Error: could not open %S", fullName);
      }

    else
    {
    for (ii=0 (ii = 0; ii < (lineNum-1); ii++)
      {
      /*move through lines without scanning*/
      fscanf(f, "%d %d %d", &num1, &num2, &num3);
      }

    printf("Numbers are: %d %d %d \n",num1, num2, num3);
    }
  }

最佳答案

您几乎完成了,但只需更改格式说明符。下面的代码将读取目标行之前的行,但忽略它所读取的内容。

for (ii=0 (ii = 1; ii < (lineNum-1); ii++)
      {
      /*move through lines without scanning*/
      fscanf(f, "%*d %*d %*d%*c");
      // fscanf(f, "%*d %*d %*d\n");
      }
fscanf(f,"%d%d%d",&num1,&num2,&num3);

关于c - 使用fscanf从给定行读取,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16556894/

10-11 21:16