Проще всего прочитать текстовый файл в строку используя std::getline:
getline(in, s, '\0');
Правда из-за того, что третий аргумент имеет тип charT, а не char_traits<charT>::int_type, и потому приходится использовать '\0', а не ios::traits_type::eof(), такое решение не подходит для текстов, в которых может встречаться '\0'. Кто-нибудь знает свободное от этого ограничения решение?