C++ 语言实现拷贝文件,如果失败,则直到失败三次后停止
时间: 2024-05-05 14:16:07 浏览: 61
以下是一个实现拷贝文件并重试三次的 C 语言代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
FILE *source, *destination;
char source_file[100], destination_file[100];
int retry = 0;
// 获取源文件名
printf("Enter source file name: ");
scanf("%s", source_file);
// 获取目标文件名
printf("Enter destination file name: ");
scanf("%s", destination_file);
// 打开源文件
source = fopen(source_file, "rb");
if (source == NULL) {
printf("Error opening source file.\n");
exit(1);
}
// 打开目标文件
destination = fopen(destination_file, "wb");
if (destination == NULL) {
printf("Error opening destination file.\n");
exit(1);
}
// 读取源文件并写入到目标文件
while (!feof(source)) {
char buffer[4096];
size_t bytes_read = fread(buffer, 1, sizeof(buffer), source);
if (bytes_read > 0) {
size_t bytes_written = fwrite(buffer, 1, bytes_read, destination);
if (bytes_written != bytes_read) {
// 写入失败,重试三次
if (retry < 3) {
printf("Error writing to destination file. Retrying...\n");
retry++;
continue;
} else {
printf("Error writing to destination file. Maximum retries reached.\n");
exit(1);
}
}
}
}
// 关闭文件
fclose(source);
fclose(destination);
printf("File copied successfully.\n");
return 0;
}
```
该代码中使用了一个 `retry` 变量来记录重试次数,如果写入文件失败,则会重试三次,如果重试三次后仍然失败,则会输出错误信息并退出程序。
阅读全文