Ну, простой однострочный текст для чтения всего файла в динамически изменяемый массив (без использования статически изменяемого массива) символов будет:
#include <vector>
#include <iterator>
std::vector<char> encryptedMessage(std::istreambuf_iterator<char>(in),
std::istreambuf_iterator<char>());
Не связывайтесь с динамическимиВыделите себя, просто позвольте std::vector
сделать свое дело.А благодаря оптимизированному поведению при росте вам не нужно беспокоиться о проверке размера файла.Оптимизируйте для скорости, когда это необходимо или, по крайней мере, не раньше, чем ваши файлы станут больше, чем несколько сотен символов.И, конечно же, istreambuf_iterator
(вместо istream_iterator
) не обрабатывает какие-либо специальные пробелы, он просто извлекает каждый символ из файла один за другим.
Вы можете сделать то же самое с std::string
вместо std::vector<char>
, но я не уверен в его поведении при росте (возможно, он всегда перераспределяет массив с еще одним элементом).Но опять же, кого волнует скорость, когда файл содержит 400 символов?