Форум программистов, компьютерный форум CyberForum.ru

Вывести предложения в обратном порядке - C++

Восстановить пароль Регистрация
 
Барбос
0 / 0 / 0
Регистрация: 10.08.2014
Сообщений: 5
10.08.2014, 19:00     Вывести предложения в обратном порядке #1
Файлы.

Помогите, пожалуйста. Нужно написать программу, которая считывает текст из файла и выводит на экран все его предложения в обратном порядке.
Я понимаю алгоритм и в принципе выполнение задачи, но у меня одна крошечная загвоздка: «в обратном порядке». Мне кажется, что необходимо рассматривать файл с конца (впрочем, быть может есть какой-то другой способ), но я никак не могу в этот самый конец переместиться. В выданной методичке по этому поводу ничего нет, примеры там вообще всегда нерабочие, а гугл мне ничем не помог.
Т.е. алгоритм, как я поняла такой:
1) Перемещаемся в конец файла
2) Считываем в массив последнее предложение
3) Выводим его на экран
4) Освобождаем массив
5) Записываем в него следующее (точнее предыдущее) предложение и т.д.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.08.2014, 19:00     Вывести предложения в обратном порядке
Посмотрите здесь:

C++ Считать из текстового файла 3 предложения и вывести их в обратном порядке
C++ Считать три предложения и вывести их в обратном порядке
Считать текст из файла и вывести все его предложения в обратном порядке C++
C++ как выделить 3 первых предложения 1,2,3 и вывести их в обратном порядке 3,2,1 ?
C++ Считать из текстового файла три предложения и вывести их в обратном порядке
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Gouvere
 Аватар для Gouvere
19 / 19 / 3
Регистрация: 25.11.2013
Сообщений: 122
10.08.2014, 19:06     Вывести предложения в обратном порядке #2
Есть вариант: просто прочитать весь файл задом наперед. То есть, это тот же цикл, но просто немного изменено условие. Могу написать код, но на Си.
Барбос
0 / 0 / 0
Регистрация: 10.08.2014
Сообщений: 5
10.08.2014, 19:39  [ТС]     Вывести предложения в обратном порядке #3
Gouvere, м-м-м, можно попробовать, наверное.
Была бы очень благодарна, если бы написали код. Пусть и на С.
igorrr37
 Аватар для igorrr37
1593 / 1221 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
10.08.2014, 20:20     Вывести предложения в обратном порядке #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <iostream>
#include <fstream>
#include <string>
#include <stack>
 
int main()
{
    std::ifstream ifs("in.txt");
    if(ifs.is_open())
    {
        std::string str, sdel(".!?");
        std::stack<std::string> stk;
        for(char c; ifs.get(c); )
        {
            str += c;
            if(sdel.find(c) != std::string::npos)
            {
                stk.push(str);
                str.clear();
            }
        }
        for( ; !stk.empty(); stk.pop())
        {
            std::cout << stk.top() << '\n';
        }
    }
    else
        std::cerr << "Unable to open input file\n";
    return 0;
}
Барбос
0 / 0 / 0
Регистрация: 10.08.2014
Сообщений: 5
13.08.2014, 16:37  [ТС]     Вывести предложения в обратном порядке #5
igorrr37, спасибо вам огромное, все работает)
Yandex
Объявления
13.08.2014, 16:37     Вывести предложения в обратном порядке
Ответ Создать тему
Опции темы

Текущее время: 13:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru