0 / 0 / 0
Регистрация: 21.07.2015
Сообщений: 2
|
|
Узнать размер строки в файле18.12.2015, 21:45. Показов 8624. Ответов 4
Метки нет Все метки)
(
Необходимо узнать размер строки в файле, чтобы выделить для нее память и занести в динамический массив.
Проблема в том, что strlen не хочет работать с указателем на файл. Можно ли это как то реализовать не создавая большой статический массив? (иначе просто смысл в динамическом массиве пропадает)
0
|
18.12.2015, 21:45 | |
Ответы с готовыми решениями:
4
Как узнать размер строки как размер массива
|
529 / 432 / 159
Регистрация: 25.11.2014
Сообщений: 1,662
|
|||
18.12.2015, 21:51 | |||
0
|
640 / 395 / 75
Регистрация: 21.09.2008
Сообщений: 1,360
|
|
18.12.2015, 23:48 | |
![]() Решение
ranrus, алгоритм примерно такой:
1. Обнулить счётчик длины строки. 2. Встать на начало файла. 3. Запомнить позицию в файле. Начать считывать посимвольно из файла. Пока не достигнут перевод строки или конец файла (EOF), увеличивать счётчик строки. Когда достигли конца строки, выйти из цикла и зарезервировать память под строку функцией сalloc по счётчику длины строки +1 символ на нулевой символ (признак конца строки). Вернуться на сохранённый указатель начала строки в файле и сосчитать в буфер строку указанного размера. 4. Пропустить разделитель строки. Конец строки обозначается в DOS/Windows парой символов '\r\n' (шестнадцатеричные коды 0x0D, 0x0A), или одним символом '\n' под *nix. 5. Начать всё заново с пункта 3.
2
|
![]() 838 / 641 / 940
Регистрация: 26.06.2015
Сообщений: 1,409
|
||||||
19.12.2015, 12:59 | ||||||
По простому.
0
|
Модератор
![]() ![]() ![]() ![]() ![]() 12841 / 7589 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
|
|||||||||||
19.12.2015, 14:15 | |||||||||||
Когда надоест изобретать велосипед:
0
|
19.12.2015, 14:15 | |
Помогаю со студенческими работами здесь
5
Как узнать размер строки в пикселях?
Файловые потоки: узнать номер самой длинной строки и её размер Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Опции темы | |
|
Новые блоги и статьи
![]() |
||||
Согласованность транзакций в MongoDB
Codd 30.04.2025
MongoDB, начинавшая свой путь как классическая NoSQL система с акцентом на гибкость и масштабируемость, сильно спрогрессировала, включив в свой арсенал поддержку транзакционной согласованности. Это. . .
|
Продвинутый ввод-вывод в Java: NIO, NIO.2 и асинхронный I/O
Javaican 30.04.2025
Когда речь заходит о вводе-выводе в Java, классический пакет java. io долгие годы был единственным вариантом для разработчиков, но его ограничения становились всё очевиднее с ростом требований к. . .
|
Обнаружение объектов в реальном времени на Python с YOLO и OpenCV
AI_Generated 29.04.2025
Компьютерное зрение — одна из самых динамично развивающихся областей искусственного интеллекта. В нашем мире, где визуальная информация стала доминирующим способом коммуникации, способность машин. . .
|
Эффективные парсеры и токенизаторы строк на C#
UnmanagedCoder 29.04.2025
Обработка текстовых данных — частая задача в программировании, с которой сталкивается почти каждый разработчик. Парсеры и токенизаторы составляют основу множества современных приложений: от. . .
|
C++ в XXI веке - Эволюция языка и взгляд Бьярне Страуструпа
bytestream 29.04.2025
C++ существует уже более 45 лет с момента его первоначальной концепции. Как и было задумано, он эволюционировал, отвечая на новые вызовы, но многие разработчики продолжают использовать C++ так, будто. . .
|
Слабые указатели в Go: управление памятью и предотвращение утечек ресурсов
golander 29.04.2025
Управление памятью — один из краеугольных камней разработки высоконагруженных приложений. Го (Go) занимает уникальную нишу в этом вопросе, предоставляя разработчикам автоматическое управление памятью. . .
|
Разработка кастомных расширений для компилятора C++
NullReferenced 29.04.2025
Создание кастомных расширений для компиляторов C++ — инструмент оптимизации кода, внедрения новых языковых функций и автоматизации задач. Многие разработчики недооценивают гибкость современных. . .
|
Гайд по обработке исключений в C#
stackOverflow 29.04.2025
Разработка надёжного программного обеспечения невозможна без грамотной обработки исключительных ситуаций. Любая программа, независимо от её размера и сложности, может столкнуться с непредвиденными. . .
|
Создаем RESTful API с Laravel
Jason-Webb 28.04.2025
REST (Representational State Transfer) — это архитектурный стиль, который определяет набор принципов для создания веб-сервисов. Этот подход к построению API стал стандартом де-факто в современной. . .
|
Дженерики в C# - продвинутые техники
stackOverflow 28.04.2025
История дженериков началась с простой идеи — создать механизм для разработки типобезопасного кода без потери производительности. До их появления программисты использовали неуклюжие преобразования. . .
|