0 / 0 / 1
Регистрация: 20.03.2015
Сообщений: 48
|
|
1
|
Multimap STL - работает только запись в файл, поиск в файле не работает
24.03.2015, 22:33. Показов 1810. Ответов 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
|