+ Ответить в теме
Показано с 1 по 2 из 2

Тема: Поиск знаков препинания в тексте

  1. #1
    dummy Mojiback is on a distinguished road
    Регистрация
    20.12.2017
    Сообщений
    4
    Вес репутации
    0

    По умолчанию Поиск знаков препинания в тексте

    Всем доброго времени суток и с наступившим, форумчане! При считывании текста из файла, не ставятся знаки абзацев, и как итог - все пишется в строку. Смотрится не очень красиво, решил добавлять endl после каждой точки. Но вот вопрос, как найти эту самую точку? Пытался через функцию find, но ничего хорошего не вышло. Выручайте
    Прилагаю код:
    Код :
    1. #include <iostream>
    2. #include <fstream>
    3. #include <cstring>
    4. using namespace std;
    5. int main()
    6. {
    7.     setlocale(0, "");
    8.     ifstream file("Line.txt");
    9.     if (!file)
    10.     {
    11.         float clo;
    12.         cout << "Ошибка открытия файла! Для продолжения нажмите любую клавишу...";
    13.         cin >> clo;
    14.         return 1;
    15.     }
    16.  
    17.     int i = 0;
    18.     static char buff[1024][1024];
    19.     while (!file.eof())
    20.     {
    21.         file >> buff[i];
    22.         cout << buff[i] << " ";
    23.         ++i;
    24.     }
    25.         file.close();
    26.     system("pause > 1");
    27.     return 0;
    28. }
    P.S. Считывал по словам, а не через getline, т.к. требуется работа с каждым словом.
    P.S.S. И еще вопрос - как записать результат в выходной файл, при этом имя файла должен задать пользователь?

  2. По умолчанию

     
    Хотите избавиться от рекламы? Зарегистрируйтесь
  3. #2
    Moderator Куратор
    system architect
    Romeo is on a distinguished road Аватар для Romeo
    Регистрация
    02.03.2004
    Адрес
    Крым, Севастополь
    Возраст
    36
    Сообщений
    3,082
    Вес репутации
    21

    По умолчанию Re: Поиск знаков препинания в тексте

    - Нерациональное использование памяти. Большинство слов не превышают размер 10 символов. Ты же выделяешь под каждое слово 1024 байт. Таким образом большая часть зарезервированной памяти будет оставаться неиспользованной. Если нужно держать в памяти весь текст, просто возьми размер файла, добавь 1 терминирующего нуля, динамически выдели массив такого размера и одним обращением вычитай всё содержимое файла в него.

    - Если уж на то пошло, не понятно вообще зачем держать в памяти весь текст. Судя по тому, что ты его просто хочешь как-то обработать и потом сохранить в новый файл, достаточно итеративного построчного вычитывания-обработки-сохранения. Это ещё уменьшит расход памяти.

    - Найти запятую можно либо циклом по символам слова, либо с помощью std::find. Если пробовал, но ничего не получилось, то нужны подробности, что именно не получилось.

    - Записать в файл можно с помощью ofstream. Работа с ним один в один, как с ifstream, который у тебя уже есть в коде.
    Entites should not be multiplied beyond necessity @ William Occam
    ---
    Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
    ---
    Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.

+ Ответить в теме

Похожие темы

  1. Поиск слов в тексте
    не могу понять как подступиться к решению следующей задачки: берем исходный файл *.txt нужно посчитать количество одинаковых слов в исходном файле....
    от Elladan в разделе Решите мне задачку
  2. help число дес. знаков запрос Access
    Помогите. В поле формы в результате запроса выводятся числа. В исходной таблице установлено число десятичных знаков = 3, а в результате запроса в...
    от Pepel в разделе MS Office и VB(A).
  3. Кол-во знаков после запятой
    Уважаемые программисты! Есть ли в Delphi7 оператор, который определяет кол-во знаков после запятой у числа типа real?
    от ANEM в разделе Delphi и Pascal
  4. Поиск сказуемого в тексте
    Скажите, по какому признаку я должен отделять сказуемые от других частей речи?
    от Тузякин в разделе Delphi и Pascal
  5. По поводу отличительных знаков.
    Aik, вроде вопрос поднимался как-то. Может стоит сообразить на кепочки и футболки с символикой develiping.ru? Я думаю, народ поддержит :)
    от Hup в разделе Жалобная книга

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения