首页 > 解决方案 > 在文件中打印数据时如何给出递增的数字?

问题描述

在这段代码中,我遇到了问题,但不知道如何解决。我需要用递增的数字在文件中打印结果。我用过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;
}

标签: cincrement

解决方案


看起来你需要这样的东西:

#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值,然后写回增加的值。并且不要忘记关闭文件。


推荐阅读