编写一个程序来拼接文件

编写一个名为fcat的程序,通过把任意数量的文件写到标准输出中而把这些文件一个接一个地“排接”起来,并且文件之间没有间隙。例如,下列命令将在屏幕上显示文件f1.c,f2.c,f3.c
fcat f1.c,f2.c,f3.c

如果任何文件都无法打开,那么程序fcat 应该发出出错消息。提示:因为每次只可以打开一个文件,所以程序fcat只需要一个文件指针变量。 一旦对一个文件完成操作,程序fcat在打开下一 一个文件时可以使用同一个文件指针变量。

以下是 C 语言代码实现,望采纳。

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char* argv[]) {
    if (argc < 2) {
        printf("用法:fcat 文件名1 文件名2 …\n");
        return 1;
    }

    for (int i = 1; i < argc; i++) {
        char* file_name = argv[i];
        FILE* fp = fopen(file_name, "r");
        if (fp == NULL) {
            fprintf(stderr, "无法打开文件 %s\n", file_name);
            return 1;
        }

        int c;
        while ((c = getc(fp)) != EOF) {
            putchar(c);
        }
        fclose(fp);
    }

    return 0;
}

这个程序使用命令行参数来指定文件名,例如:

fcat file1.txt file2.txt file3.txt

程序会依次打开每个文件,并把它们的内容输出到标准输出中。如果有任何文件无法打开,程序会发出出错消息。