J
Jason Heyes
I want to read the binary contents of a file whose size is over 1 megabyte.
I tried to use this function.
bool read_file(const char *fname, std::vector<char> &data)
{
std::ifstream in(fname);
if (!in.is_open())
return false;
char block[4096];
while (in.read(block, 4096))
data.insert(data.end(), block, block + 4096);
data.insert(data.end(), block, block + in.gcount());
return true;
}
It stops after reading 4198 bytes. Can someone explain this?
I tried to use this function.
bool read_file(const char *fname, std::vector<char> &data)
{
std::ifstream in(fname);
if (!in.is_open())
return false;
char block[4096];
while (in.read(block, 4096))
data.insert(data.end(), block, block + 4096);
data.insert(data.end(), block, block + in.gcount());
return true;
}
It stops after reading 4198 bytes. Can someone explain this?