Some bytes are missing after reading an std::ifstream to a vector of lines
c++, istream-iterator
Solution
`istream_iterator` uses `operator >>` to read elements, but `operator >>` skip whitespaces.
You may try using `noskipws`
inputfile >> noskipws;
§ 24.6.1 p1. (my emphasis)
The class template `istream_iterator` is an input iterator (24.2.3) that reads (using operator>>) successive elements from the input stream for which it was constructed....
Problem
For copying what I read from input file to vector, I used `std::copy()` as recommended in Reading an std::ifstream to a vector of lines. The problem occurs if I use: ``` std::copy(std::istream_iterator<unsigned char>(inputfile), std::istream_iterator<unsigned char>(), std::back_inserter(myVector)); ``` The 16th byte of my file is missing in the `myVector` variable. But if I use the following code: ``` inputfile.read((char*)&myVector[0], sizeof(int)*getfilesize(nameOfFile)); ``` Then the byte is not missing anymore. I am trying to parse WAV files and I lost too much time on this, I hope I will learn something new out of this. Can you please tell me what is wrong with the first version of the code above?