Попробуйте что-то вроде этого:
static const unsigned int section_size = 0x1819;
char buffer[section_size];
std::string s1;
std::string s2;
std::string s3;
std::string s4;
// code to open file
f.read(buffer, section_size);
s1.assign(buffer, section_size);
f.read(buffer, section_size);
s2.assign(buffer, section_size);
f.read(buffer, section_size);
s3.assign(buffer, section_size);
f.read(buffer, section_size);
s4.assign(buffer, section_size);
f.close();
Только за 4 чтения я решил встроить; ИМХО, намного эффективнее, чем петля.
Приведенный выше код назначает буфер 4 переменным для каждого сообщения.
Я мог бы дать лучший ответ, но мне нужно больше информации о назначении и содержании входного файла. Например, вы хотите разделить файл на 4 равные части? или разделить по абзацу? Можете ли вы использовать std::vector
вместо отдельных переменных? Вы действительно нуждаетесь в , чтобы одновременно хранить все содержимое файла в памяти, или вы можете обрабатывать файл кусками?