【发布时间】:2020-10-10 17:52:09
【问题描述】:
在这段代码中,我遇到了问题,但不知道如何解决。我需要用递增的数字在文件中打印结果。我使用了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;
}
【问题讨论】:
-
不清楚你想做什么。您是否希望下次有人输入新行时,行号应该是前行号 + 1。我认为使用当前代码可能总是 1?
-
fgets() 将读取的换行符存储到缓冲区中。因此,您不需要在最后一个 fprintf() 中添加额外的 '\n'。
-
@DeepakPatankar 你是对的。如果有人再次输入数据,我想输入 1 plus。
-
同样,您需要文件中最后一行的行号,然后您可以将
int line = 1更改为该行号。获取此行号的一种方法是geeksforgeeks.org/c-program-count-number-lines-file