This question already has an answer here:
What is a good approach to read the whole file content in a buffer for C++?
While in plain C I could use fopen(), fseek(), fread()
function combination and read the whole file to a buffer, is it still a good idea to use the same for C++? If yes, then how could I use RAII approach while opening, allocating memory for buffer, reading and reading file content to buffer.
Should I create some wrapper class for the buffer, which deallocates memory (allocated for buffer) in it's destructor, and the same wrapper for file handling?
You can access the contents of a file with a input file stream std::ifstream, then you can use std::istreambuf_iterator to iterate over the contents of the ifstream,
In this case im using the iterator to build a new string using the contents of the ifstream, the
std::istreambuf_iterator<char>(file)
creates an iterator to the begining of the ifstream, andstd::istreambuf_iterator<char>()
is a default-constructed iterator that indicate the special state "end-of-stream" which you will get when the first iterator reach the end of the contents.There's no need for wrapper classes for very basic functionality:
Something I have in most of my programs:
Can be placed in a header.
I think I have found it here: https://stackoverflow.com/a/116220/257568