Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
0 / 0 / 0
Регистрация: 13.10.2013
Сообщений: 34
1

Считывание предложений из текстового файла(готовый код)

09.12.2013, 13:20. Показов 2358. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте господа. Подскажите пожалуйста возможно ли подправить этот код таким образом чтобы количество считываемых предложений из текстового файла вводилось с клавиатуры?Тут по умолчанию считывает 3 предложения..
Если такое возможно,подскажите как или кто может исправьте пожалуйста)Я сам просто "НУБ" в программировании...
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
using namespace std;
 
int main()
{   
    ifstream fin("input.txt", ios::binary);
    ofstream fout("output.txt");
    
    if (!fin.is_open() || !fout.is_open())
        cout << "Error!" << endl;
    else // чтение предложений из файла
    {
        vector <string> v; // вектор для предложений
        char ch;
        string str; // строка для предложения
        
        while (fin.peek() == ' ') // пропускаем пробелы до первого предложения
                    fin.seekg(1, ios::cur);
        
        while (true)
        {
            fin.get(ch);
            if (fin.eof()) break;
            str.push_back(ch);
            if (ch == '.' || ch == '!' || ch == '?') // если конец предложения
            {
                v.push_back(str); // предложение в вектор
                str.clear();
                while (fin.peek() == ' ') // пропускаем пробелы между предложениями
                    fin.seekg(1, ios::cur);
            }
        }
        fin.close();
 
        for (auto i = v.rbegin(); i != v.rend(); i++) // запись предложений в обратном порядке в файл
        {
            fout << *i;
            if (i != (v.rend() - 1)) fout << ' ';
        }
        fout.close();
    }
    
    system("pause");
    return 0;
}
Добавлено через 14 часов 30 минут
???
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.12.2013, 13:20
Ответы с готовыми решениями:

Ищу готовый шифратор и дешифратор текстового файла
Скиньте плиз кто - нибудь прогу, которая шифрует и дешифрует текстовый файл! Очень нужно

Вывод предложений из текстового файла в обратном порядке
Помогите пожалуйста решить задачу! Написать программу, которая считывает из текстового файла три предложения и выводит их в обратном...

Чтение из текстового файла трех предложений и вывод их в обратном порядке
Написать программу, которая считывает из текстового файла три предложения и выводит их в обратном порядке. Люди помогите. Собственно...

3
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
09.12.2013, 13:29 2
Цитата Сообщение от vitalya_gap Посмотреть сообщение
по умолчанию считывает 3 предложения
А сколько у вас в файле? Не три ли?
Цитата Сообщение от vitalya_gap Посмотреть сообщение
количество считываемых предложений из текстового файла вводилось с клавиатуры?
Двадцать третья строка: заменить while на for, и предварительно воткните для него cin.
1
 Аватар для igorrr37
2866 / 2014 / 990
Регистрация: 21.12.2010
Сообщений: 3,720
Записей в блоге: 15
09.12.2013, 13:43 3
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
#include <cstdlib>
using namespace std;
 
int main()
{
    ifstream fin("in.txt", ios::binary);
    ofstream fout("output.txt");
 
    if (!fin.is_open() || !fout.is_open())
        cout << "Error!" << endl;
    else // чтение предложений из файла
    {
        vector <string> v; // вектор для предложений
        char ch;
        string str; // строка для предложения
        int cnr;
        std::cout << "cnr= ";
        std::cin >> cnr;
 
        while (fin.peek() == ' ') // пропускаем пробелы до первого предложения
                    fin.seekg(1, ios::cur);
 
        while (cnr)
        {
            //std::cout << cnr << '\n';
            fin.get(ch);
            //std::cout << ch << '\n';
            if (fin.eof())
                break;
            str.push_back(ch);
            if (ch == '.' || ch == '!' || ch == '?') // если конец предложения
            {
                v.push_back(str); // предложение в вектор
                --cnr;
            //std::cout << str << '\n';
                str.clear();
                while (fin.peek() == ' ') // пропускаем пробелы между предложениями
                    fin.seekg(1, ios::cur);
            }
        }
        //std::cout << "v.size(): " << v.size() << '\n';
        fin.close();
 
        for (auto i = v.rbegin(); i != v.rend(); i++) // запись предложений в обратном порядке в файл
        {
            fout << *i;
            cout << *i;
            if (i != (v.rend() - 1)) fout << ' ';
        }
        fout.close();
    }
    return 0;
}
1
0 / 0 / 0
Регистрация: 13.10.2013
Сообщений: 34
09.12.2013, 14:18  [ТС] 4
igorrr37, Спасибо,работает)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.12.2013, 14:18
Помогаю со студенческими работами здесь

Считывание текста из файла и вывод на экран всех его предложений в обратном порядке
Подскажите, как сделать так, чтобы программа изменяла просто порядок предложений. Т.е. я ввожу в текстовый файл &quot;Доброе утро. Добрый...

Считывание текста из файла и вывод на экран только цитат - предложений, заключенных в кавычки.
Программа, которая считывает текст из файла и выводит на экран только цитаты, то есть предложения, заключенные в кавычки.

Считывание из текстового файла
Как в матлабе считать данные с текстового файла? Точнее правильно считать, например, двойной массив. Я пробовал с помощью функции load, но...

Считывание текстового файла
Вот сам файл Я считываю символ в отдельное поле класса, потом 2 цифры после символа в отдельные 2 поля, а затем сама проблема: остальные...

Считывание из текстового файла
Нужно модифицировать программу. Чтобы пользователь вводил текст НЕ в диалоговом окне, а текст был записан в *. ТХТ файле, откуда программ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Новые блоги и статьи
WebAssembly в Kubernetes
stackOverflow 03.03.2025
В современной экосистеме облачных технологий WebAssembly (Wasm) становится все более значимым компонентом, предлагая уникальный подход к выполнению кода в распределенных системах. Эта технология. . .
GitHub Actions или Jenkins: Выбираем CI/CD платформу
stackOverflow 03.03.2025
Непрерывная интеграция и развертывание (CI/ CD) изменили подход к разработке программного обеспечения, превратив его в бесшовный процесс от написания кода до развертывания в продакшн. GitHub Actions и. . .
Автоматизация тестирования Pull Request в Kubernetes: Интеграция с GitHub Actions и GKE
stackOverflow 03.03.2025
Масштабные проекты с использованием Kubernetes требуют надежной системы тестирования изменений перед их внедрением в продакшн-среду. Традиционный подход с ручной проверкой Pull Request не справляется. . .
Tестирование Pull Request в Kubernetes с помощью vCluster
stackOverflow 03.03.2025
При работе с микросервисной архитектурой критически важно обеспечить качественное тестирование каждого изменения перед его слиянием в основную кодовую базу. Однако тестирование Pull Request в. . .
Использование пакета Context в Golang
bytestream 03.03.2025
Управление параллельными процессами в современных приложениях - сложная задача, особенно когда речь идет о микросервисной архитектуре и распределенных системах. Пакет context в Go - это гибкое. . .
WebAssembly и Go: Работа с DOM и обработка ошибок
bytestream 03.03.2025
WebAssembly представляет собой технологию, позволяющую запускать низкоуровневый код в браузере практически на нативной скорости. Особенно интересные возможности открываются при использовании. . .
WebAssembly и Go: Создание высокопроизводи­­тельных веб-приложений
bytestream 03.03.2025
WebAssembly - это технология, изменившая подход к созданию высокопроизводительных веб-приложений. До появления WebAssembly JavaScript оставался единственным языком программирования, который понимали. . .
Контексты в Go: отмена, тайм-ауты и распространение
bytestream 03.03.2025
В многопоточном программировании существует множество ситуаций, когда необходимо прерывать выполнение горутин или ограничивать время их работы. Отсутствие грамотного управления параллельными. . .
WebSocket в Go: создание масштабируемых real-time приложений
bytestream 03.03.2025
Веб-приложения все чаще требуют обработки данных в режиме реального времени. Традиционный подход с использованием HTTP-запросов имеет существенные ограничения для таких сценариев. При каждом запросе. . .
Как дебажить в Go: Руководство по отладке
bytestream 03.03.2025
Отладка в Go имеет свои особенности, связаные с строгой типизацией, моделью конкурентности и управлением памятью. Go предоставляет богатый набор встроеных средств для отладки, которые дополняются. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru