How to read a file in multiple chunks until EOF (C++)

前端 未结 3 1417
失恋的感觉
失恋的感觉 2021-02-20 15:32

So, here\'s my problem: I want to make a program that reads chunks of data from a file. Let\'s say, 1024 bytes per chunk. So I read the first 1024 bytes, perform various operati

3条回答
  •  一生所求
    2021-02-20 15:59

    Accepted answer doesn't work for me - it doesn't read last partial chunk. This does:

    void readFile(std::istream &input, UncompressedHandler &handler) {
        std::vector buffer (1024,0); //reads only 1024 bytes at a time
        while (!input.eof()) {
            input.read(buffer.data(), buffer.size());
            std::streamsize dataSize = input.gcount();
            handler({buffer.begin(), buffer.begin() + dataSize});
        }
    }
    

    Here UncompressedHandler accepts std::string, so I use constructor from two iterators.

提交回复
热议问题