|
46 / 46 / 1
Регистрация: 14.10.2008
Сообщений: 179
|
||||||
Получение размера файла с помощью fstream. ОТВЕТ.17.04.2009, 10:14. Показов 24981. Ответов 18
Метки нет (Все метки)
Для того, кто не знает как получить размер файла, и того, кто не хочет пользоваться API или не умеет: ВОТ ПОЛУЧЕНИЕ РАЗМЕРА:
5
|
||||||
| 17.04.2009, 10:14 | |
|
Ответы с готовыми решениями:
18
Очистка/удаление файла *.txt с помощью fstream Как поэлементно считать текст с файла с помощью fstream, и сохранить каждый символ в массив? Можно ли с помощью fstream создать папку |
|
192 / 190 / 15
Регистрация: 27.01.2009
Сообщений: 548
|
||||||
| 17.04.2009, 15:38 | ||||||
|
для тех, кто не знает fstream...коряво, но работает
0
|
||||||
|
46 / 46 / 1
Регистрация: 14.10.2008
Сообщений: 179
|
|
| 17.04.2009, 17:56 [ТС] | |
|
0
|
|
|
Временно недоступен
957 / 228 / 14
Регистрация: 12.04.2009
Сообщений: 926
|
|
| 17.04.2009, 18:18 | |
|
Vasiliusis, а почему коряво?Это же из стандартной библиотеки,да?Тогда даже лучше.А можно реализовать через указатели?
0
|
|
|
46 / 46 / 1
Регистрация: 14.10.2008
Сообщений: 179
|
||
| 17.04.2009, 18:38 [ТС] | ||
|
А коряво я имел ввиду, что это так - смекалка, выход из положения, а не использование специально предназначеной для получения размера функции, наподобии там file.filesize() или что-то в этом роде
0
|
||
|
Временно недоступен
957 / 228 / 14
Регистрация: 12.04.2009
Сообщений: 926
|
||
| 17.04.2009, 18:43 | ||
|
0
|
||
|
46 / 46 / 1
Регистрация: 14.10.2008
Сообщений: 179
|
|
| 17.04.2009, 20:41 [ТС] | |
|
Т.е. для каждой буквы свой указатель, и у начала и конца разница равна числу букав - НУ тогда адресного пространства программы не хватит)))) Вы что, нет конечно
Не, адрес объекта один. А начало и конец - это не указатели, а кластеры на нашем харде - это уже другая история
0
|
|
|
Временно недоступен
957 / 228 / 14
Регистрация: 12.04.2009
Сообщений: 926
|
|
| 17.04.2009, 21:35 | |
|
Да нет же=))) объявить указатель на файл,так можно?Ну после открытия,что-ли...Или файл сам по себе не может быть объектом в памяти??А потом этот указатель ++ и разница (p1-p) будет некой областью памяти с размером,правильно?или я не догоняю тему ))
0
|
|
|
108 / 108 / 23
Регистрация: 21.03.2010
Сообщений: 445
|
||
| 12.10.2011, 05:25 | ||
|
да блин! это не верный способ! Для некоторых файлов и старых стандартов это приведёт к ошибкам в ихмерениях размера файла. Nikolai M. Josuttis в своей книжке про стандартную библиотеку объясняет что такой вариант не годен так как, скажем, символ перехода на другую строку часто записывается в 2 байта. Я сегодня работаю с файлом в 98 тысяч строк, и такая ошибка ощутима. Именно из-за трудности написания универсального алгоритма получение размера таким образом не реализовано вовсе.
вернее, это не размер строки в файле а размер самого файла. Если нужен размер строки нужно суметь открыть файл с параметром std::ios::binary. У меня, лично, не вышло. После пяти часов копания плюнул и написал через <cstdio>
0
|
||
|
|
|||||||
| 12.10.2011, 08:30 | |||||||
|
Вот получение размер файла объектом-fstream
0
|
|||||||
|
1069 / 848 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
|
||
| 12.10.2011, 08:55 | ||
|
Просто интересно. Посмотри в моей книжке - все работает и работает правильно.
0
|
||
|
108 / 108 / 23
Регистрация: 21.03.2010
Сообщений: 445
|
|||||||
| 12.10.2011, 10:14 | |||||||
0
|
|||||||
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
||||||
| 12.10.2011, 10:32 | ||||||
http://liveworkspace.org/code/... 050260b317
0
|
||||||
|
|
|||||||||||
| 12.10.2011, 10:36 | |||||||||||
0
|
|||||||||||
|
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
|
|||
| 12.10.2011, 11:00 | |||
в C аналогичную операцию через ftell() нельзя выполнять, потому что она используется для текстовых потоков, чтобы получать значение индикатора файловой позиции для последующего использования в вызове fseek() она не возвращает количество символов в текстовом потоке а для бинарных нельзя применять fseek() с SEEK_END, потому что в двоичном потоке может быть заполнение неопределённым количеством нуль-символов в конце
0
|
|||
|
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
|
||
| 13.10.2011, 02:10 | ||
|
а что это за число streampos ? чему оно равно ?
для файла с "\r\n\r\n" в уиндоус в текстовом режиме что вернёт .tellg() ?
0
|
||
|
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
|
||
| 13.10.2011, 02:52 | ||
также там можно применять offset от SEEK_SET и SEEK_CUR
1
|
||
| 13.10.2011, 02:52 | |
|
Помогаю со студенческими работами здесь
19
Как записать структуру в файл с помощью fstream? Получение фактического размера и размера файла в байтах Получение размера файла Получение размера файла FTP Получение размера файла с кирилическими символами Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
|
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога
SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
|
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
|
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога
SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
|