This seems to be working.
unsigned long long length = (downloadChunk->offset_end - downloadChunk->offset_start) + 1;
char *data = new char[length];
fseek(file, downloadChunk->offset_start, SEEK_SET);
fread(data, 1, length, file);
fclose(file);
std::istringstream iss(std::string(data, length));
delete []data;