编写一个名为fcat的程序,通过把任意数量的文件写到标准输出中而把这些文件一个接一个地“排接”起来,并且文件之间没有间隙。例如,下列命令将在屏幕上显示文件f1.c,f2.c,f3.c
fcat f1.c,f2.c,f3.c
如果任何文件都无法打开,那么程序fcat 应该发出出错消息。提示:因为每次只可以打开一个文件,所以程序fcat只需要一个文件指针变量。 一旦对一个文件完成操作,程序fcat在打开下一 一个文件时可以使用同一个文件指针变量。
编写一个名为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
程序会依次打开每个文件,并把它们的内容输出到标准输出中。如果有任何文件无法打开,程序会发出出错消息。