Я думаю, что вы, вероятно, ищете решение для динамической памяти . На самом деле вы спросили: «Есть ли способ получить количество символов в файле, не читая его?». Ответ (при условии, что один байт на символ) - да, вы можете использовать вызов stat
, чтобы получить размер файла, а размер файла в байтах - это количество символов. С UTF-8 ответ - нет, но давайте отложим это на мгновение, так как начинающие компьютерные ученые обычно не беспокоятся об интернационализации.
Я думаю, что причина, по которой вы хотите знать, сколько символов в нем, - чтобы у вас было достаточно места для хранения их всех. Вам не нужно знать, насколько велик файл для хранения всего этого.
Если у вас есть std::vector<char>
, он может вначале содержать десять символов, затем вырасти до двадцати, затем десяти тысяч ... И когда вы закончите читать файл, он будет содержать их всех, даже хотя ты никогда не знал, сколько их будет.