Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 12.12.2017
Сообщений: 4
1

Написать программу, которая удаляет из текстового файла предложения, состоящие из заданного количества слов

15.12.2018, 22:01. Просмотров 955. Ответов 6

Есть программа, выводящая предложение, которое состоит из заданного количества слов. Что в ней изменить, чтобы она выводила текст из файла без этого предложения?

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
#include <iostream>
#include <fstream>
#include <string>
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "Russian");
 
    int number, counter = 0;
    string word;
 
    ifstream fin("C:\\Users\\Вероника\\Desktop\\textovyi.txt");
    if (!fin.is_open()) {
        cout << "Fail ne naiden." << endl;
        system("pause");
        return 1;
    }
 
    cout << "Enter number words: ";
    cin >> number;
 
    string * sentence = new string[number];
 
    while (!fin.eof())
    {
        fin >> word;
        sentence[(counter++) % number] = word;
 
        if (word.find_first_of(".!?") != string::npos)
        {
            if (counter == number)
                for (int i = 0; i < number; i++)
                    cout << sentence[i] << " ";
            counter = 0;
        }
    }
       
    system("pause");
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.12.2018, 22:01
Ответы с готовыми решениями:

написать программу, которая считывает текст из файла и выводит на экран только предложения, состоящие из заданного количества слов.
написать программу, которая считывает текст из файла и выводит на экран только предложения,...

Написать программу, которая считывает текст из файла и выводит на экран только предложения, состоящие из заданного количества слов.
1. Написать программу, которая считывает текст из файла и выводит на экран только предложения,...

Написать программу, которая вводит текст с клавиатуры, и выводит на экран только предложения, состоящие из заданного количества слов
string text = &quot;word11 word23&quot;; int length = 6; var result =...

Написать программу, которая вводит текст с клавиатуры, и выводит на экран только предложения, состоящие из заданного количества слов
Здравствуйте, помогите пожалуйста с написанием данной программы:) А то ничего не получается...

6
180 / 46 / 33
Регистрация: 27.02.2016
Сообщений: 259
15.12.2018, 22:07 2
itpineapple, 33-ая строка: if (counter != number)
Просто :-)
0
0 / 0 / 0
Регистрация: 12.12.2017
Сообщений: 4
15.12.2018, 23:06  [ТС] 3
Так программа ничего не выводит(
0
180 / 46 / 33
Регистрация: 27.02.2016
Сообщений: 259
15.12.2018, 23:19 4
itpineapple, 34-ая:
C++
1
for (int i = 0; i < counter; i++)
0
0 / 0 / 0
Регистрация: 12.12.2017
Сообщений: 4
15.12.2018, 23:53  [ТС] 5
Спасибо, уже лучше, но неправильно выводит. Вот текст:
Текст — это упорядоченный набор предложений, предназначенный для того, чтобы выразить некий смысл. В лингвистике термин используется в широком значении, включая в себя и устную речь. Восприятие текста изучается в рамках лингвистики текста и психолингвистики.
И вывод прикреплен
0
Миниатюры
Написать программу, которая удаляет из текстового файла предложения, состоящие из заданного количества слов  
2224 / 1728 / 864
Регистрация: 21.12.2010
Сообщений: 3,073
Записей в блоге: 11
16.12.2018, 07:42 6
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
#include <iostream>
#include <string>
#include <regex>
#include <cstdlib>
#include <fstream>
#include <iterator>
#include <vector>
 
// протестировано в MSVS2017
int main()
{
    system("chcp 1251");
    std::ifstream ifs{"in.txt"};
    if (ifs.is_open())
    {
        std::string str{ std::istreambuf_iterator<char>{ifs.rdbuf()}, {} }, sw{ "А-Яа-яЁё\\d[:alpha:]" };
        int cw = 3; // кол-во слов в предложении
        std::regex rgx{ "(?:^|[.!?])[^" + sw + ".!?\n]*[" + sw + "]+(?:[^" + sw + ".!?]+[" + sw + "]+){" + std::to_string(cw - 1) + "}[^" + sw + ".!?]*(?=[.!?])" };
        std::vector<std::ssub_match> vct{ std::sregex_token_iterator{ str.begin(), str.end(), rgx }, {} };
        for (auto ibr{ vct.crbegin() }, ier{ vct.crend() }; ibr != ier; ++ibr)
        {
            auto first = ibr->first;
            auto second = ibr->second;
            char c = *ibr->first;
            if ('.' == c || '!' == c || '?' == c)
            {
                ++first;
            }
            ++second;
            std::cout << "для удаления:" << std::string{first, second} << std::endl;
            str.erase(first, second);
        }
        std::cout << "\n\n" << str << std::endl;
 
        ifs.close();
    }
    else
    {
        std::cerr << "Unable to open file\n";
    }
}
0
0 / 0 / 0
Регистрация: 12.12.2017
Сообщений: 4
17.12.2018, 22:38  [ТС] 7
igorrr37, спасибо, но это уж очень сложно написано. Эта лабораторная по потоковому вводу/выводу из файла
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.12.2018, 22:38

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

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

Написать программу, которая считывает текст из файла и выводит на экран только предложения, состоящие из заданного колличества слов
Задание выглядит следующим образом: &quot;Написать программу, которая считывает текст из файла и выводит...

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

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

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

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.