0 / 0 / 0
Регистрация: 08.04.2018
Сообщений: 18

В текстовом файле определить количество слов начинающихся и заканчивающихся на одну и ту же букву

08.02.2019, 16:11. Показов 1548. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Программа предназначена для подсчитывания в текстовом файле количества слов начинающихся и заканчивающихся на одну и ту же букву.

Возникла проблема: Если в текстовом документе слово начинающееся и заканчивающееся на одну и ту же букву находится в конце,то на экран оно почему то выводится два раза

Вот например текст в документе:
Название: 2019-02-08_16-07-45.jpg
Просмотров: 80

Размер: 8.7 Кб

А вот результат работы программы:
В текстовом файле определить количество слов начинающихся и заканчивающихся на одну и ту же букву


Помогите исправить пожалуйста

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
   #include "stdafx.h"
#include "iostream"
#include "windows.h"
#include "string"
#include "fstream"
 
using namespace std;
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
     string filename;
 
     
     cout << "Введите путь к текстовому файлу.Обязательно укажите его расширение (.txt)\n "; 
 
        s: // Ввод имени файла и проверка ввода
        getline(cin,filename); 
        ifstream file1(filename.c_str()); 
        if ((!file1)||(filename.find("txt")==-1)) 
        { 
         cout << "Ошибка при открытии файла! Файл не существует или проверьте правильность ввода пути к текстовому файлу.Введите его заново:" << endl;
         goto s; 
        }
 
       cout<<"\nСлова начинающиеся и заканчивающиеся на одну и ту же букву:\n\n";
 
    ifstream file(filename); 
    string buff;
    int j;
    j=0;
    do // Поиск слов начинающихся и заканчивающихся на одну и ту же букву и вывод найденных слов на экран
    
    {   
        file >> buff; 
         if ((buff.front() == buff.back()) && (buff.length() > 1) & (buff[0] >= 'а') &  (buff[0]<='я'))
         {
           cout<<buff<<endl;
           j=j+1;
          }
    }
 
    while (!file.eof());
    if (j==0)
    cout<<"\nСлов начинающихся и заканчивающихся на одну и ту же букву нет. "; 
    else cout<<"\nКоличество слов начинающихся и заканчивающихся на одну и ту же букву - "<<j<<endl;
    
    system("pause"); 
    return 0 ; 
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.02.2019, 16:11
Ответы с готовыми решениями:

В заданном текстовом файле определить количество строк, начинающихся и заканчивающихся на одну и ту же букву
Ребят, помогите допилить код, он вроде бы работает, но в цикле проходит только 0-ую строку и выводит неверный результат. Public Class...

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

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

7
 Аватар для SomniPhobia
601 / 438 / 137
Регистрация: 22.11.2017
Сообщений: 1,398
08.02.2019, 16:50
Gtt, привет!
Держи код. Здесь необходимо указывать кодировку в которой записан текст в файле. Если кто знает, скажите как определить кодировку текста в файле, может метод какой есть. NotePad++ как - то определяет кодировку и выводит внизу окна.
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
#include <iostream>
#include <string>
#include <xstring>
#include <algorithm>
#include <vector>
#include <set>
#include <iterator>
#include <fstream>
 
using namespace std;
 
template<class T>
vector<T> split(const T &s, const T &separators);
 
int main()
{
    system("color 0A");
    wcout.imbue(locale("rus_rus.866"));
    wcin.imbue(locale("rus_rus.866"));
 
    /*
    //Запись текста в файл в указанной кодировке 866
    wofstream wfout;
    wfout.imbue(locale("rus_rus.866"));
    wfout.open(L"C:\\Users\\Роман\\Desktop\\5.txt");
    wfout << L"дрозд и дом\nазбука тест\n1один1\nappa\nЕщё много всяких слов Казак";
    */
    
    wcout << L"Введите путь к текстовому файлу. Обязательно укажите его расширение (*.txt)" << endl;
    wstring way;
    getline(wcin, way);
    wifstream wfin;
    //Укажи номер кодировки, в которой записан текст в файле
    wfin.imbue(locale("rus_rus.866"));
    wfin.open(way);
    wstring buff_;
    if (!wfin.is_open())
    {
        wcout << L"Файл не удалось открыть" << endl;
        system("pause");
        return 1;
    }
    for (;wfin.good();)
    {
        wstring line;
        getline(wfin, line);
        buff_ += line + L" ";
    }
    //wcout << buff_ << endl;
    auto words = split(buff_, L" .,*!?@#$%^&*()[]:;\"'№-+//"s);
    size_t count = 0u;
    wcout << L"Вот слова из файла, что начинаются на ту же букву, что и заканчиваются" << endl;
    for (const auto &word : words)
    {
        wstring word_low;
        setlocale(LC_ALL, "Russian");
        transform(word.begin(), word.end(), back_inserter(word_low), ::towlower);
        setlocale(LC_ALL, "C");
        if (word_low.front() == word_low.back())
        {
            wcout << word << endl;
            ++count;
        }
    }
    wcout << L"Их " << count << L" штук" << endl;
    
    system("pause");
    return 0;
}
 
template<class T>
vector<T> split(const T &s, const T &separators)
{
    vector<T> words;
    T word;
    for (const auto &c : s)
    {
        bool is_separator = (separators.find(c) != T::npos);
        if (is_separator && !word.empty())
        {
            words.push_back(word);
            word.clear();
        }
        else if (!is_separator)
        {
            word.push_back(c);
        }
    }
    if (!word.empty())
    {
        words.push_back(word);
    }
    return words;
}
Миниатюры
В текстовом файле определить количество слов начинающихся и заканчивающихся на одну и ту же букву  
0
0 / 0 / 0
Регистрация: 08.04.2018
Сообщений: 18
08.02.2019, 23:43  [ТС]
ой совсем другой код
разобраться еще нужно
спасибо большое
0
26 / 25 / 14
Регистрация: 12.10.2018
Сообщений: 240
09.02.2019, 00:44
Gtt,
Цитата Сообщение от Gtt Посмотреть сообщение
Если в текстовом документе слово начинающееся и заканчивающееся на одну и ту же букву находится в конце,то на экран оно почему то выводится два раза
В текстовом файле после последнего слова не переводите курсор на новую строку и будет вам счастье. ))
1
Неэпический
 Аватар для Croessmah
18124 / 10708 / 2063
Регистрация: 27.09.2012
Сообщений: 26,996
Записей в блоге: 1
09.02.2019, 00:53
C++
1
2
3
4
5
6
7
8
9
10
11
12
    do // Поиск слов начинающихся и заканчивающихся на одну и ту же букву и вывод найденных слов на экран
    
    {   
        file >> buff; 
         if ((buff.front() == buff.back()) && (buff.length() > 1) & (buff[0] >= 'а') &  (buff[0]<='я'))
         {
           cout<<buff<<endl;
           j=j+1;
          }
    }
 
    while (!file.eof());
-->
C++
1
2
3
4
5
6
7
8
9
    while(file >> buff) // Поиск слов начинающихся и заканчивающихся на одну и ту же букву и вывод найденных слов на экран
    
    {   
         if ((buff.length() > 1) && (buff.front() == buff.back()) && (buff[0] >= 'а') &&  (buff[0]<='я'))
         {
           cout<<buff<<endl;
           j=j+1;
          }
    }
1
26 / 25 / 14
Регистрация: 12.10.2018
Сообщений: 240
09.02.2019, 00:59
Gtt,
Цитата Сообщение от Gtt Посмотреть сообщение
Возникла проблема: Если в текстовом документе слово начинающееся и заканчивающееся на одну и ту же букву находится в конце,то на экран оно почему то выводится два раза
Или в строке 42 допишите
C++
1
buff="";
0
Just Do It!
 Аватар для XLAT
4142 / 2557 / 645
Регистрация: 23.09.2014
Сообщений: 8,236
Записей в блоге: 2
09.02.2019, 06:58
Цитата Сообщение от SomniPhobia Посмотреть сообщение
Если кто знает, скажите как определить кодировку текста в файле, может метод какой есть
Как определить кодировку файла?
Как распознать кодировку текста при вводе из файла?
1
 Аватар для SomniPhobia
601 / 438 / 137
Регистрация: 22.11.2017
Сообщений: 1,398
09.02.2019, 21:58
XLAT, спасибо!
А как NotePad++ определяет кодировку, также аналитическим методом?

Добавлено через 4 часа 22 минуты
Цитата Сообщение от Gtt Посмотреть сообщение
разобраться еще нужно
Привет! Разобрался в моём коде или вопросы у тебя остались?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.02.2019, 21:58
Помогаю со студенческими работами здесь

Как определить количество слов в строке, начинающихся и заканчивающихся на одну и ту же букву
Здравствуйте. Помогите пожалуйста с программным кодом задания: В заданной строке, состоящей из слов, разделенных одним или более пробелами,...

В заданной строке определить количество слов, начинающихся и заканчивающихся на одну и ту же букву
&quot;В заданной строке определить количество слов, начинающихся и заканчивающихся на одну и ту же букву&quot; и &quot;В заданном массиве...

Дан текст. Определить количество слов начинающихся и заканчивающихся на одну и ту же букву
Да текст. определить количество слов начинающихся и заканчивающихся на одну и ту же букву

Количество слов начинающихся и заканчивающихся на одну и ту же букву
Разработайте программу для поиска количества слов, начинающихся и заканчивающихся на, одну и ту же букву в строке Str Слова в строке...

Подсчитать количество слов, начинающихся и заканчивающихся на одну и ту же букву
Дана строка, содержащая текст на русском языке. Подсчитать количество слов, начинающихся и заканчивающихся на одну и ту же букву.


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

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

Новые блоги и статьи
Образование и практика
Igor3D 21.03.2025
Добрый день А вот каково качество/ эффективность ВУЗовского образования? Аналитическая геометрия изучается в первом семестре и считается довольно легким курсом, что вполне справедливо. Ну хорошо,. . .
Lazarus. Таблица с объединением ячеек.
Massaraksh7 21.03.2025
Понадобилась представление на экране таблицы с объединёнными ячейками. И не одной, а штук триста, и все разные. На Delphi я использовал для этих целей TStringGrid, и то, кривовато получалось. А в. . .
Async/await в Swift: Асинхронное программировани­е в iOS
mobDevWorks 20.03.2025
Асинхронное программирование долго было одной из самых сложных задач для разработчиков iOS. В течение многих лет мы сражались с замыканиями, диспетчеризацией очередей и обратными вызовами, чтобы. . .
Колмогоровская сложность: Приёмы упрощения кода
ArchitectMsa 20.03.2025
Наверное, каждый программист хотя бы раз сталкивался с кодом, который напоминает запутанный лабиринт — чем дальше в него погружаешься, тем сложнее найти выход. И когда мы говорим о сложности кода, мы. . .
PostgreSQL в Kubernetes: Подготовка кластера и настройка
Mr. Docker 20.03.2025
Когда доходит до контейнеризации баз данных и особенно таких требовательных к ресурсам системах как PostgreSQL, многие команды до сих пор колеблются, прежде чем перенести их в контейнерную. . .
C++26: Индексирование пакетов и метапрограммиро­вание
bytestream 20.03.2025
Эволюция C++ продолжается стремительными темпами – каждый новый стандарт приносит функциональность, о которой мы мечтали годами. Звучит слишком громко? Если вы когда-либо боролись с вариадическими. . .
Состояние гонки в C#: подводные камни многопоточного программировани­я
UnmanagedCoder 20.03.2025
Что такое состояние гонки? Это ситуация, когда результат программы непредсказуемо меняется в зависимости от порядка выполнения потоков. Проще говоря, два или более потока пытаются одновременно. . .
Next.js для разработки React: преимущества серверного рендеринга
Reangularity 20.03.2025
Next. js решает классическую проблему React-приложений: медленную первоначальную загрузку и плохую индексацию поисковиками. Вместо того чтобы заставлять браузер пользователя выполнять всю работу по. . .
JUnit или TestNG: Выбираем Java-фреймворк для тестирования
Javaican 20.03.2025
История тестовых фреймворков в Java началась в конце 90-х, когда Кент Бек и Эрих Гамма разработали JUnit - инструмент, который перевернул представление разработчиков о модульном тестировании. JUnit. . .
Разбиваем монолит на два микросервиса и реализуем CI/CD
ArchitectMsa 20.03.2025
Когда команда растет, а функциональность монолита расширяется, поддерживать и развивать такую систему становится все труднее. Разработчики начинают тратить много времени на разбор сложных. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru