首页 > 后端开发 > C++ > 正文

C++如何使用fstream实现文件复制功能

P粉602998670
发布: 2025-09-14 13:13:01
原创
957人浏览过
使用C++ fstream实现文件复制需通过ifstream读取源文件,ofstream写入目标文件,以二进制模式打开文件,分块读写缓冲区并检查文件状态,确保复制成功。

c++如何使用fstream实现文件复制功能

要使用C++中的

fstream
登录后复制
实现文件复制功能,核心思路是通过
ifstream
登录后复制
读取源文件内容,再通过
ofstream
登录后复制
将读取的数据写入目标文件。整个过程可以逐字符、按块或使用流操作符完成。

包含必要的头文件

C++标准库中用于文件操作的类定义在

<fstream>
登录后复制
中,同时需要
<iostream>
登录后复制
处理错误输出:

#include <fstream>
#include <iostream>

打开源文件和目标文件

使用

ifstream
登录后复制
打开源文件,确保以二进制模式(
std::ios::binary
登录后复制
)读取,避免文本模式对换行符等字符的转换。同样,
ofstream
登录后复制
也应以二进制模式写入:

std::ifstream src("source.txt", std::ios::binary);
std::ofstream dest("copy.txt", std::ios::binary);

检查文件是否成功打开,防止后续操作失败:

立即学习C++免费学习笔记(深入)”;

if (!src || !dest) {
    std::cerr << "无法打开文件!" << std::endl;
    return 1;
}

复制文件内容

有多种方式复制数据,推荐使用缓冲区按块读写,效率更高。例如,每次读取4096字节:

ViiTor实时翻译
ViiTor实时翻译

AI实时多语言翻译专家!强大的语音识别、AR翻译功能。

ViiTor实时翻译 116
查看详情 ViiTor实时翻译
src.seekg(0, std::ios::end);
size_t size = src.tellg();
src.seekg(0, std::ios::beg);

std::vector<char> buffer(size);
src.read(buffer.data(), size);
dest.write(buffer.data(), size);

或者更安全地分块处理大文件:

char buffer[4096];
while (src.read(buffer, sizeof(buffer)) || src.gcount() > 0) {
    dest.write(buffer, src.gcount());
}

完整示例代码

以下是一个完整的函数,实现文件复制:

bool copyFile(const std::string& source, const std::string& destination) {
    std::ifstream src(source, std::ios::binary);
    std::ofstream dest(destination, std::ios::binary);

    if (!src || !dest) {
        return false;
    }

    char buffer[4096];
    while (src.read(buffer, sizeof(buffer)) || src.gcount() > 0) {
        dest.write(buffer, src.gcount());
    }

    return src.eof() && !src.fail() && !dest.fail();
}

调用时传入源路径和目标路径即可:

int main() {
    if (copyFile("a.txt", "b.txt")) {
        std::cout << "复制成功!" << std::endl;
    } else {
        std::cout << "复制失败!" << std::endl;
    }
    return 0;
}

基本上就这些。只要注意以二进制模式操作、检查文件状态、合理使用缓冲区,就能可靠地完成文件复制。不复杂但容易忽略细节。

以上就是C++如何使用fstream实现文件复制功能的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号