编写一个 C 程序 fact.c,将命令行中指定的多个文本文件连接成一个文本文件。例如:
fcat file1 file2 file3
其中,fcat 为命令名,file1,file2 和 file3 为参数。该命令的功能是将文本文件 file1,file2 和 file3 连接成为一个文本文件(文件名由第一个参数 file1 指定)
参考:12 合并文件
#include<stdio.h>
#include<stdlib.h>
int main(int argc, char *argv[]){
// 检查命令行正确性
if(argc<5){
// fcat file1 file2 file3
printf("\nUsage:fcat file1 file2 file3\n");
// stdlib.h 里
exit(0);
}
// 检查文件是否存在
FILE *fp1,*fp2,*fp3;
// a 向文本文件末尾添加数据,a+ 指针移至末尾,可以添加也可以读
if((fp1 = fopen(argv[2],"a"))== NULL){
printf("Cannot open file1! \n");
exit(0);
}
if((fp2 = fopen(argv[3],"r")) == NULL){
printf("Cannot open file2! \n");
exit(0);
}
if((fp3 = fopen(argv[4],"r")) == NULL){
printf("Cannot open file3! \n");
exit(0);
}
while(!feof(fp2))
// 把 fp2 追加到 fp1
fputc(fgetc(fp2), fp1);
fclose(fp2);
while(!feof(fp3))
// 把 fp3 追加到 fp1
fputc(fgetc(fp3), fp1);
fclose(fp3);
fclose(fp1);
}