在文件中打印数据时如何给出递增的数字?

How to give incremented numbers when printing data in file?

在这段代码中,我遇到了一个问题,但不知道如何解决。我需要用递增的数字在文件中打印结果。我使用了 line++ 但它只能在循环中工作,我希望如果有人打印了一些东西然后再次打印应该需要行号递增。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define STRING_LEN 200

int main(){
  FILE * fp1 = fopen("file.csv", "a");
  char string[STRING_LEN];
  int line = 1;

  printf("Enter the string: ");
  fgets(string, sizeof(string), stdin);

  fprintf(fp1, "%d,%s\n", line++, string);

  return 0;
}

看来您需要这样的东西:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define STRING_LEN 200

int main(){
  char string[STRING_LEN];
  int line;
  FILE * fp1 = fopen("file.csv", "a+r");

  fscanf(fp1, "%d,%s\n", &line, string);
  printf("Enter the string: ");
  fgets(string, sizeof(string), stdin);
  fprintf(fp1, "%d,%s", ++line, string);
  
  fclose(fp1);
  return 0;
}

首先,我们从文件中读取行,解析它并得到 line 值,然后写回增量值。并且不要忘记关闭文件。