📜  C程序,将两个文件的内容合并为第三个文件(1)

📅  最后修改于: 2023-12-03 15:00:13.500000             🧑  作者: Mango

C程序 - 合并两个文件为第三个文件

本程序实现了读取两个文件的内容,然后将它们合并为第三个文件的功能。

实现思路
  1. 打开第一个输入文件和第二个输入文件
  2. 打开输出文件(第三个文件)
  3. 读取第一个输入文件的内容,写入输出文件
  4. 读取第二个输入文件的内容,写入输出文件
  5. 关闭所有文件
代码实现
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[]) {
    if (argc != 4) {
        printf("Usage: %s <inputfile1> <inputfile2> <outputfile>\n", argv[0]);
        return 1;
    }

    char *inputfile1 = argv[1];
    char *inputfile2 = argv[2];
    char *outputfile = argv[3];

    FILE *ifp1 = fopen(inputfile1, "r");
    FILE *ifp2 = fopen(inputfile2, "r");
    FILE *ofp = fopen(outputfile, "w");

    if (ifp1 == NULL || ifp2 == NULL || ofp == NULL) {
        printf("Error: Cannot open file.\n");
        return 1;
    }

    char buffer[1024];

    // 读取第一个文件
    while (fgets(buffer, sizeof(buffer), ifp1) != NULL) {
        fputs(buffer, ofp);
    }

    // 读取第二个文件
    while (fgets(buffer, sizeof(buffer), ifp2) != NULL) {
        fputs(buffer, ofp);
    }

    // 关闭文件
    fclose(ifp1);
    fclose(ifp2);
    fclose(ofp);

    printf("Done.\n");

    return 0;
}
使用方法
  1. 编译程序:gcc merge.c -o merge
  2. 运行程序:./merge input1.txt input2.txt output.txt

其中,input1.txtinput2.txt是要合并的两个文件的路径,output.txt是生成的第三个文件的路径。

注意事项
  1. 程序会自动覆盖已存在的输出文件,使用时需注意。
  2. 程序没有做输入文件路径的检查,应当先检查输入文件是否存在。