2、编写一个简单的文件复制程序,利用程序执行参数指定源文件名和目的文件名,如: ./copy source.jpg destiny.jpg int main(int argc, char *argv) argv[1] argv[2] 即在执行时将源文件source.jpg复制到文件destiny.jpg中。打开其中任一文件时应有相应报错显示并退出
时间: 2024-03-10 10:44:49 浏览: 158
以下是一个简单的文件复制程序的实现,可以根据传入的参数指定源文件和目标文件,并进行文件复制操作。如果文件复制过程中出现错误,程序会输出错误信息并退出。
```c++
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
// 检查输入参数的数量
if (argc != 3) {
printf("Usage: %s source_file destination_file\n", argv[0]);
return 1;
}
// 打开源文件和目标文件
FILE *src_file = fopen(argv[1], "rb");
if (src_file == NULL) {
printf("Error: cannot open source file %s\n", argv[1]);
return 2;
}
FILE *dest_file = fopen(argv[2], "wb");
if (dest_file == NULL) {
printf("Error: cannot open destination file %s\n", argv[2]);
fclose(src_file);
return 3;
}
// 逐个字节地复制文件内容
int ch;
while ((ch = fgetc(src_file)) != EOF) {
if (fputc(ch, dest_file) == EOF) {
printf("Error: write failed\n");
fclose(src_file);
fclose(dest_file);
return 4;
}
}
// 关闭文件
fclose(src_file);
fclose(dest_file);
// 打印复制成功的信息
printf("File copied successfully.\n");
return 0;
}
```
在程序中,首先检查输入参数的数量,如果参数不足则输出使用说明并退出。然后打开源文件和目标文件,如果打开失败则输出错误信息并退出。接着逐个字节地复制文件内容,如果复制过程中出现错误则输出错误信息并退出。最后关闭文件,输出复制成功的信息,程序正常退出。
阅读全文