#include <iostream>
#include <fstream>


int copy_file(const char* SourceFile, const char* TargetFile)
{
    // 创建 std::fstream 流对象
    std::ifstream in;
    std::ofstream out;

    try {
        // 打开源文件
        in.open(SourceFile, std::ios::binary);
        // 打开源文件失败
        if (in.fail()) {
            std::cout << "Error 1: Fail to open the source file." << std::endl;
            // 关闭文件对象
            in.close();
            out.close();
            return 0;
        }
        out.open(TargetFile, std::ios::binary);
        if (out.fail()) {
            std::cout << "Error 2: Fail to create the new file." << std::endl;
            in.close();
            out.close();
            return 0;
        } else {
            out << in.rdbuf();
            out.close();
            in.close();
            return 1;
        }

    }
    catch (std::exception& E){
        std::cout << E.what() << std::endl;
        return 1;
    }
}

int main() {
    const char* path = R"(D:\Code\untitled\abc.txt)";
    if (copy_file(path, "def.txt")) {
        std::cout << "复制成功" << std::endl;
    }
}