Home >Backend Development >C++ >How to read file contents as a character array in C using ifstream::read() and istreambuf_iterator?
How to Read File Contents as a Character Array in C
Background
This question asks how to populate a character array buffer with the bytes of a file named inputFile. The user has encountered difficulties with other suggested approaches that use getline() instead of ifstream::read().
Solution
There are a few approaches to address this task:
Using ifstream::read()
This method involves:
Example Code:
<code class="cpp">// Open file in binary mode std::ifstream infile("C:\MyFile.csv", std::ios_base::binary); // Get file length infile.seekg(0, std::ios::end); size_t length = infile.tellg(); infile.seekg(0, std::ios::beg); // Read file infile.read(buffer, length);</code>
Using istreambuf_iterator
This approach is more modern and uses iterators to read the file:
Example Code:
<code class="cpp">// Create iterators std::istreambuf_iterator<char> begin(infile); std::istreambuf_iterator<char> end; // Create vector std::vector<char> contents(begin, end); // Copy vector to array std::copy(contents.begin(), contents.end(), buffer);</code>
Considerations
The above is the detailed content of How to read file contents as a character array in C using ifstream::read() and istreambuf_iterator?. For more information, please follow other related articles on the PHP Chinese website!