zoukankan      html  css  js  c++  java
  • c++ 通过数据流方式实现文件拷贝

    #include "stdafx.h"
    #include <iostream>
    #include<fstream>
    using namespace std;
    void copy(char* src, char* dst);

    int _tmain(int argc, _TCHAR* argv[])
    {

        // 源文件地址及文件名
        char src[50] = "D:/cAddProgram/source_file/file.txt";

       // 拷贝的目的及文件名称
        char dst[50] = "D:\cAddProgram\source_file\file1.txt";

        copy(src, dst);

        return 0;
    }

    // 文件拷贝实现方法
    void copy(char* src, char* dst)
    {
        using namespace std;
        ifstream in(src,ios::binary);
        ofstream out(dst,ios::binary);
        if (!in.is_open()) {
            cout << "error open file " << src << endl;
            exit(EXIT_FAILURE);
        }
        if (!out.is_open()) {
            cout << "error open file " << dst << endl;
            exit(EXIT_FAILURE);
        }
        if (src == dst) {
            cout << "the src file can't be same with dst file" << endl;
            exit(EXIT_FAILURE);
        }
        char buf[2048];
        long long totalBytes = 0;
        while(in)
        {
            //read从in流中读取2048字节,放入buf数组中,同时文件指针向后移动2048字节
            //若不足2048字节遇到文件结尾,则以实际提取字节读取。
            in.read(buf, 2048);    
            //gcount()用来提取读取的字节数,write将buf中的内容写入out流。
            out.write(buf, in.gcount());    
            totalBytes += in.gcount();
        }
        in.close();
        out.close();
    }


  • 相关阅读:
    【习题整理】分块+莫队(未完待续)
    【bzoj4198】【Noi2015】荷马史诗
    【bzoj2006】【NOI2015】超级钢琴
    【bzoj1029】【JSOI2007】建筑抢修
    【bzoj1483】【HNOI2009】梦幻布丁
    【bzoj4195】【NOI2015】程序自动分析
    Rearrangement inequality
    hdu1047
    hdu1046
    hdu1045
  • 原文地址:https://www.cnblogs.com/northeastTycoon/p/9294323.html
Copyright © 2011-2022 走看看