• 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

  • 相关阅读:
    Eclipse的自动排版设置(format)
    Java中" "表示几个空格
    cookie和session详解
    IO流操作详解
    springmvc常用注解标签详解
    mavenWeb工程建立步骤
    数据导出为excel表格
    Springmvc jar包介绍
    【初级算法】5.只出现一次的数字
    【初级算法】4.存在重复
  • 原文地址:https://www.cnblogs.com/buyishi/p/9027214.html
Copyright © 2020-2023  润新知