C语言给文档(.txt)写入行号
一、说明
1、使用VS Code编辑代码
2、命令行(cmd)下运行
3、原文本(wenben.txt)
4、写入文本(file.txt)
5、 文本都在同一目录下
二、代码
/*
说明:
运行方式:
cmd下:
1:gcc 文件名.c
2: a.exe ./wenben/wenben.txt file.txt
程序功能描述
将原文本添加行号写入到一个新文本中
*/
#include <stdio.h>
#include <stdlib.h> // 提供exit();
int main(char argc, char *argv[])
{
printf("一共 %d 个参数\n", argc); //参数个数
printf("第一个参数名:%s\n", argv[0]); // 第一个参数,程序名
printf("第二个参数名:%s\n", argv[1]); // 第二个参数,待处理的txt文档
printf("第三个参数名:%s\n", argv[2]); // 第三个参数,待查词
char *filename = argv[1]; // 后台第二个参数:一个待读取的文本文档
char *filename2 = argv[2]; // 后台第三个参数:待查词
int n_lines2 = 0;
int row = 1; // 行号
char line[1024]; // 保存读取一行的信息的line数组
FILE *fpln = fopen(filename, "r"); // 输入文件的指针
FILE *fpOut = fopen(filename2, "w"); // 输出文件的指针
if (fpln == NULL)
{
perror("打开文件wenben.txt错误");
return -1;
}
if (fpOut == NULL)
{
perror("打开文件file.txt错误");
return -1;
}
// 逐行读取
while (fgets(line, sizeof(line), fpln))
{
n_lines2++;
fprintf(fpOut, "[%d] %s", row++, line);
}
printf("\n一共 %d 行", n_lines2);
fclose(fpln);
fclose(fpOut);
return (0);
}