写c函数,从给定的输入文本文件中按行读入,并按行写入给定的输出文件中。要求:1)去除每行的前导空格或制表符。2)每行前加行号。
时间: 2024-05-05 07:18:13 浏览: 55
好的,可以试试以下的C代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char *argv[]) {
if (argc < 3) {
fprintf(stderr, "Usage: %s input_file output_file\n", argv[0]);
return 1;
}
FILE *ifp = fopen(argv[1], "r");
if (!ifp) {
fprintf(stderr, "Cannot open input file %s\n", argv[1]);
return 1;
}
FILE *ofp = fopen(argv[2], "w");
if (!ofp) {
fprintf(stderr, "Cannot open output file %s\n", argv[2]);
fclose(ifp);
return 1;
}
char *line = NULL;
size_t len = 0;
ssize_t read;
int lineno = 1;
while ((read = getline(&line, &len, ifp)) != -1) {
int i;
for (i = 0; i < read; i++) {
if (line[i] != ' ' && line[i] != '\t') break;
}
fprintf(ofp, "%d\t%s", lineno++, line+i);
}
free(line);
fclose(ifp);
fclose(ofp);
return 0;
}
```
使用时可以在命令行输入:
```
$ ./program input.txt output.txt
```
其中 `program` 为编译后的可执行文件名,`input.txt ` 为输入文件名, `output.txt ` 为输出文件名。经过程序处理, `output.txt` 的格式应该符合你的要求了。
阅读全文