1. Суммарно файлы на диске не могут весить больше, чем на этот диск имеет объём.
2. int64_t имеет максимальное значение порядка 18 квинтилионов. 18 квинтилионов байт - это порядка 16 млн дисков по 1тб
подсчитывает размер файлов в байтах в поддиректориях. Если взять папку, внутри которой лежит ОЧЕНЬ много лёгких файлов, то любой целочисленный тип будет моментально превышен
Это ещё почему?
Она же суммирует их => если нормально пишешь, то нет разницы - много маленьких или мало больших.
Тоесть у тебя переполниться счётчик не может, даже если ты попробуешь посчитать суммарный объём всего интернета в байтах.
Значит у тебя в коде ошибка.
А вот если бы у тебя реально в int64_t значения не умещались, то тогда тебе следовало бы посмотреть на длинную арифметику.
В рамках того же буста есть Boost multiprecision library, которая предоставляет разные типы для работы с большими числами.
https://en.wikipedia.org/wiki/List_of_arbitrary-pr...
да и вывод будет нечитабельным
А вот это уже другой вопрос. Если вывод нечитабельный, значит виноват тот, кто задачу поставил, тк он по определнию будет нечитабельным, раз ты в байтах выводишь.
Можно сократить, если выводить, например, в кило-/мега-/гига- байтах, но тогда упадёт точность.
Можно добавить пробелы между разрядами - тогда будет легче читать.