Romeo » 02 янв 2018, 17:21
- Нерациональное использование памяти. Большинство слов не превышают размер 10 символов. Ты же выделяешь под каждое слово 1024 байт. Таким образом большая часть зарезервированной памяти будет оставаться неиспользованной. Если нужно держать в памяти весь текст, просто возьми размер файла, добавь 1 терминирующего нуля, динамически выдели массив такого размера и одним обращением вычитай всё содержимое файла в него.
- Если уж на то пошло, не понятно вообще зачем держать в памяти весь текст. Судя по тому, что ты его просто хочешь как-то обработать и потом сохранить в новый файл, достаточно итеративного построчного вычитывания-обработки-сохранения. Это ещё уменьшит расход памяти.
- Найти запятую можно либо циклом по символам слова, либо с помощью std::find. Если пробовал, но ничего не получилось, то нужны подробности, что именно не получилось.
- Записать в файл можно с помощью ofstream. Работа с ним один в один, как с ifstream, который у тебя уже есть в коде.
- Нерациональное использование памяти. Большинство слов не превышают размер 10 символов. Ты же выделяешь под каждое слово 1024 байт. Таким образом большая часть зарезервированной памяти будет оставаться неиспользованной. Если нужно держать в памяти весь текст, просто возьми размер файла, добавь 1 терминирующего нуля, динамически выдели массив такого размера и одним обращением вычитай всё содержимое файла в него.
- Если уж на то пошло, не понятно вообще зачем держать в памяти весь текст. Судя по тому, что ты его просто хочешь как-то обработать и потом сохранить в новый файл, достаточно итеративного построчного вычитывания-обработки-сохранения. Это ещё уменьшит расход памяти.
- Найти запятую можно либо циклом по символам слова, либо с помощью std::find. Если пробовал, но ничего не получилось, то нужны подробности, что именно не получилось.
- Записать в файл можно с помощью ofstream. Работа с ним один в один, как с ifstream, который у тебя уже есть в коде.