在文件中打印数据时如何给出递增的数字?
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
值,然后写回增量值。并且不要忘记关闭文件。
在这段代码中,我遇到了一个问题,但不知道如何解决。我需要用递增的数字在文件中打印结果。我使用了 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
值,然后写回增量值。并且不要忘记关闭文件。