c - 在文件中打印数据时如何给出递增的数字?
问题描述
在这段代码中,我遇到了问题,但不知道如何解决。我需要用递增的数字在文件中打印结果。我用过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
值,然后写回增加的值。并且不要忘记关闭文件。
推荐阅读
- python - 如何在记录未知长度的数据时修复错误?
- python - 用python编写的def函数中的加密代码
- python - python-'Status'对象没有属性'lower'
- java - 在混合模式下使用 URI(Windows 和 Linux)
- vba - Excel-vba:使用用户定义函数 (UDF) 获取单元格公式中的选定单元格
- android - 退还用户钱
- docker - 运行 docker-compose up 重建并附加到其他容器
- python - 通过键列表删除嵌套字典中的元素
- vba - 如何下载 Excel 文件的附件?
- azure-active-directory - 使用 Azure Active Directory 对网站进行加密操作时出错