zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    VS2005中的WebApplication和WebSite
    CodeFile 与 CodeBehind 的区别
    vs2005默认浏览器(IE)灵异事件
    杭电OJ第4252题 A Famous City
    湘大OJ第1490题 Generating Random Numbers
    中南OJ 2012年8月月赛 B题 Barricade
    中南OJ 2012年8月月赛 H题 Happy watering
    杭电OJ第4245题 A Famous Music Composer
    中南OJ 2012年8月月赛 I题 Imagination
    杭电OJ第4256题 The Famous Clock
  • 原文地址:https://www.cnblogs.com/buyishi/p/9027214.html
Copyright © 2011-2022 走看看