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

Multimap STL - работает только запись в файл, поиск в файле не работает

24.03.2015, 22:33. Показов 2238. Ответов 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
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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
#include <string>   // это тип данных для ввода строковых данных.
#include <map>      //позволяет нам хранить эти данные в виде ключ-значение
#include <iostream> //Библиотека потокового ввода-вывода
#include <fstream>  //для чтения/записи данных из/в файл
#include <algorithm>    //позволяют сортировать данные в массиве, искать в нем какое-либо значение, менять элементы местами и т.д
#include <Windows.h>    //библиотека для работы SetConsole
#include <iomanip>
using namespace std;
 
typedef string N1;                  //  тип  ключа
typedef string N2;                  //  тип  элемента
typedef multimap<string, string, less<string> > sl;
N1 key;
N2 m;
 
int main()
{
    SetConsoleCP(1251); //функция для ввода русского языка
    SetConsoleOutputCP(1251);
    sl::iterator itr;
    sl::value_type pr;
    string k;
    key = k;
    sl slovar;
    int q = 0;
    int p = 0;
    int t = 0;
    while (q != 3)
    {
        system("cls"); //очистка консоли
        cout << "Выбирите ваше действие: \n"
            << "1. Режим Англо-Русского словаря. \n"
            << "2. Режим Русско-Английского словаря. \n"
            << "3. Выход из программы." << endl;                //вывод меню
        cin >> q;//выбор пункта меню
        switch (q)
        {
        case 1://кейс (Англо-Русский)
        {
            system("cls"); //очистка консоли
 
            while (p != 3)
            {
                system("cls"); //очистка консоли
                cout << "Выбран Англо-Русский словарь. Какие действия хотите провести?: \n"
                    << "1. Добавить слова в словарь/Выйти из заполнения словаря; \n"
                    << "2. Поиск слов для перевода/Выити из поиска; \n"
                    << "3. Завершить использование словаря." << endl;              //вывод меню
                cin >> p;//выбор пункта меню
                switch (p)
                {
                case 1:// кейс Добавления в Англо-Русский словарь.
                {
                    system("cls"); //очистка консоли
                    int i;
 
                    std::ofstream file("slovar_en-ru.txt", std::ios::app);//  для вывода (записи) данных в файл
 
                    do
                    {
                        system("cls"); //очистка консоли
                        std::cout << "Для нового ввода нажмите 1, для выхода 0:\n> ", std::cin >> i;//подтверждение добавления или выход
                        fflush(stdin);
                        if (!i)
                            break;
                        std::cout << "Введите слово на английском:\n> ";
                        cin >> k;
                        std::cout << "Введите слово на русском:\n> ";
                        cin >> m;
                        std::cout << "\n";
                        file << k << "\t" << m << "\n";
                    } while (i);
                    file.close();
                }
                break;
                case 2:// кейс поиска перевода анг слов
                {
                    system("cls"); //очистка консоли
                    ifstream file("slovar_en-ru.txt");
                    while (file >> k >> m)
                    {
                        while (1)
                        {
                            cout << "Введите слово на английском которое хотите перевести, или exit чтобы выйти: \n";
                            cin >> k;
                            if (k == "exit") break;
                            if (slovar.find(m) != slovar.end())
                            {
                                cout << "Перевод слова: \n";
                                cout << slovar.find(m)->first << endl;
                            }
                            else cout << "В словаре этого слова не найдено" << endl;
                        }
                    }
                    file.close();
                }
                break;
                case 3://Завершить использование словаря.
                {
                    p = 3;
                }
                break;
                }
            }
        }
        break;
        case 2://кейс (Русско-Английский)
        {
            system("cls"); //очистка консоли
            int i;
            while (t != 3)
            {
                system("cls");//очистка консоли
                cout << "Выбран Русско-Английский словарь. Какие действия хотите провести?: \n"
                    << "1. Добавить слова в словарь/Выйти из заполнения словаря; \n"
                    << "2. Поиск слов для перевода/Выити из поиска; \n"
                    << "3. Завершить использование словаря." << endl;              //вывод меню
                cin >> t;//выбор пункта меню
                switch (t)
                {
                case 1:// кейс Добавления в Русско-Английский словарь.
                {
 
                    system("cls"); //очистка консоли
                    std::ofstream cout("slovar_ru-en.txt", std::ios::app);//  для вывода (записи) данных в файл
                    do
                    {
                        system("cls"); //очистка консоли
                        std::cout << "Для нового ввода нажмите 1, для выхода 0:\n> ", std::cin >> i;//подтверждение добавления или выход
                        fflush(stdin);
                        if (!i)
                            break;
                        system("cls"); //очистка консоли
 
                    } while (i);
                }
                break;
                case 2:// кейс поиска перевода рус слов
                {
                    system("cls"); //очистка консоли
                }
                break;
                case 3://Завершить использование словаря.
                {
                    t = 3;
                }
                break;
                }
            }
            break;
        case 3: //Выход из программы.
        {
            q = 3;
        }
        break;
        default:
            cout << "Нужно выбрать пункт меню." << endl;
            system("pause");
        }
 
        }
    }
    return 0;
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.03.2015, 22:33
Ответы с готовыми решениями:

STL, не работает multimap::equal_range()
изучаю STL, работаю с multimap: typedef multimap&lt;string, string&gt; str_mmap; str_mmap test_mmap; string str1(&quot;1&quot;), str2(&quot;2&quot;),...

Не работает поиск в текстовом файле
Я хочу чтобы данные которые я ввожу , записывались в файл с пробелами и считывались на экран(так же с пробелами). Все получилось , но не...

Не работает поиск в файле (ifstream)
Всегда выдает &quot;No&quot; и return -1; Возможно кто-то знает альтернативную реализацию. #include &quot;stdafx.h&quot; int...

3
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
24.03.2015, 23:27
А если случаи из case переделать на функции?
А то тут даже не понятно, в котором по уровню вложенности case смотреть проблему.
0
0 / 0 / 1
Регистрация: 20.03.2015
Сообщений: 48
24.03.2015, 23:30  [ТС]
Ну можно и так. Просто я делал менюшку и сделал её по принципу меню в меню. По этому там в 1 кейсе и 2 кейсе от первого меню вложены ещё по 3 кейса)
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
31.03.2015, 23:06
А где заполнение словаря? Что там ищется, если ничего не добавлялось?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
31.03.2015, 23:06
Помогаю со студенческими работами здесь

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

Не работает программа поиск в файле
Почему не работает программа пишет ошибку Unit1.cpp(47): E2034 Cannot convert 'char' to 'char *'пометил где //ошибку И файл закинул по...

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

STL multimap.
#include &quot;stdafx.h&quot; #include &lt;map&gt; #include &lt;algorithm&gt; #include &lt;string&gt; #include &quot;conio.h&quot; #include &lt;iostream&gt; using...

Почему не работает поиск цифр в файле
Здравствуйте, Есть задача, где цифры подаются вот так _ | | |_| (Это 0) Так вот, для проверки что за цифра (только для нуля)...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru