• C++文件IO操作的简单示例


    CppIODemo1.cpp

    #include <iostream>
    #include <fstream>
    #include <chrono>
    #define INPUT_BUFFER_SIZE 1024 * 1024
    int main()
    {
        using namespace std;
        cout << "Type an input file name: ";
        string filename;
        getline(cin, filename);
        ifstream ifs(filename, ifstream::in | ifstream::binary);
        if (ifs)
        {
            cout << "Type an output file name: ";
            getline(cin, filename);
            ofstream ofs(filename, ofstream::out | ofstream::binary);
            if (ofs)
            {
                cout << "Copying file..." << endl;
                char buffer[INPUT_BUFFER_SIZE];
                chrono::system_clock::time_point startTime = chrono::system_clock::now();
                while (!ifs.eof())
                {
                    streamsize numberOfCharacters = ifs.read(buffer, INPUT_BUFFER_SIZE).gcount();
                    ofs.write(buffer, numberOfCharacters);
                }
                chrono::system_clock::time_point endTime = chrono::system_clock::now();
                float elapsedTime = static_cast<chrono::duration<float, ratio<1, 1>>>(endTime - startTime).count();
                cout << "File copied, elapsed time: " << elapsedTime << endl;
            }
            else
                cerr << "Cannot open output file: '" << filename << "'!" << endl;
        }
        else
            cerr << "Cannot open input file: '" << filename << "'!" << endl;
        return 0;
    }

    CppIODemo2.cpp

    #include <iostream>
    #include <fstream>
    #define INPUT_BUFFER_SIZE 1024 * 1024
    int main()
    {
        std::cout << "Enter an input file name: ";
        std::string filename;
        std::getline(std::cin, filename);
        std::ifstream ifs(filename, std::fstream::in);
        if (ifs.is_open())
        {
            std::cout << "Enter an output file name: ";
            std::getline(std::cin, filename);
            std::ofstream ofs(filename, std::fstream::out);
            if (ofs.is_open())
            {
                char buffer[INPUT_BUFFER_SIZE];
                while (!ifs.eof())
                {
                    std::streamsize numberOfCharacters = ifs.read(buffer, INPUT_BUFFER_SIZE).gcount();
                    std::cout.write(buffer, numberOfCharacters);
                    ofs.write(buffer, numberOfCharacters);
                }
            }
            else
                std::cout << "Cannot open file: " << filename << std::endl;
        }
        else
            std::cout << "Cannot open file: " << filename << std::endl;
        return 0;
    }

    附带一句:http://en.cppreference.com,此站点为C/C++权威参考手册^_^若不习惯英文,可浏览此站点的中文版http://zh.cppreference.com

  • 相关阅读:
    php解析word,获得文档中的图片
    小程序 图表 antv f2 的使用
    eslint配置大全
    node 操作word excel
    vue-element-admin
    python中字符串前的r什么意思
    python3 三种字符串(无前缀,前缀u,前缀b)与encode()
    Markdown语法
    Python3 字符串前面加u,r,b的含义
    Python os.walk()
  • 原文地址:https://www.cnblogs.com/buyishi/p/9027214.html
Copyright © 2020-2023  润新知