0 / 0 / 0
Регистрация: 18.03.2022
Сообщений: 21
1

Переводчик на C++. Исправить ошибку

14.04.2022, 01:16. Показов 564. Ответов 1

Доброго времени суток. Есть программа, которая переводит слова с одного языка на другой. Программа почему-то переводит подготовленные слова с русского на английский, но наоборот получается набор символов... Помогите пожалуйста
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
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
 
void dictionary()
{
    string new_word;
    string translation;
    ofstream fout("dictionary", ios::app);
    int choice;
    while (true)//<--
    {
        setlocale(LC_ALL, "RUS");
        cout << "\tПеревод слов \n";
        cout << "1. Введите новое слово и перевод\n"
            << "2. Стоп";
 
        cout << "\nВведите свой выбор: ";
        cin >> choice;
        switch (choice)
        {
        case(1):
        {
            setlocale(LC_ALL, "RUS");
            cout << "Слово: ";
            cin >> new_word;
            cout << "Перевод: ";
            cin >> translation;
            fout << "\n" << new_word << " " << translation;
            break;
        }
        case(2): { fout.close(); return; }//<--
        default: cout << "Неправильный номер\n";
        }
    }
}
 
void translate()
{
    setlocale(LC_ALL, "RUS");
    string word;
    string original_word;
    string translation;
    ifstream fin("dictionary");
    setlocale(LC_ALL, "RUS");
 
    cout << "Введите слово, которое вы хотите перевести: ";
    cin >> word;
 
    while (!fin.eof() && word != original_word)
      
    {
        setlocale(LC_ALL, "RUS");
        fin >> original_word >> translation;
        if (word == original_word) { cout << "Перевод: " << translation; fin.close(); break; }
    }
    cout << " Не знаю этого слова";
    fin.close();
}
 
int menu()
{
    int choice = 0;
    while (true)
    {
        setlocale(LC_ALL, "RUS");
        cout << "\n----Перевод слов - МЕНЮ----\n";
        cout << "1. Введите новые слова\n"
            << "2. Переведите свой текст\n"
            << "3. Выход";
 
        cout << "\nВведите свой выбор: ";
        cin >> choice;
        switch (choice)
        {
            setlocale(LC_ALL, "RUS");
        case(1): { dictionary(); break; }
        case(2): { translate(); break; }
        case(3): return 0;
        default: cout << "Неправильный номер\n";
        }
    }
}
int main()
{
    return menu();
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.04.2022, 01:16
Ответы с готовыми решениями:

Подскажите как исправить ошибку. прога ломается на 79 строке. а ошибку не выдает
#include &lt;iostream&gt; #include &lt;cstdlib&gt; #include &lt;ctime&gt; using namespace std; int chisla(int...

программа-переводчик,исправить ошибку
есть программа:примитивный словарь,переводчик,сделать надо было с помощью классов и списков что-то...

Как исправить ошибку: формат теста исправить нельзя, только текст программы
class AmericanDate: def __init__(self, y, m, d): self.get_year = str(y) ...

Исправить и дополнить программу. Метод Карацубы. Исправить ошибку и сделать ввод и вывод данных
Работаю в Visual studio 2019 Нужно: 1. Добавить к программе ввод и вывод данных, чтобы программа...

1
Модератор
Эксперт С++
12095 / 9769 / 5907
Регистрация: 18.12.2011
Сообщений: 26,226
14.04.2022, 07:04 2
Лучший ответ Сообщение было отмечено viktor1997 как решение

Решение

от того, что Вы навставляли кучу setlocale, лучше не станет.
На ввод с клавиатуры это не подействует.
Уберите их совсем, а в начало программы вставьте
C++
1
system("chcp 1251>NUL");
В консоли вывода потом установите шрифт Lucida console
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.04.2022, 07:04
Помогаю со студенческими работами здесь

Исправить и дополнить программу. Метод Карацубы. Исправить ошибку и сделать ввод и вывод данных
Работаю в Visual studio 2019 Нужно: 1. Добавить к программе ввод и вывод данных, чтобы программа...

В коде выдает ошибку на 15 строчке. Мне надо исправить эту ошибку
procedure TForm1.BOkClick(Sender: TObject); var e1, e2: double; begin Label1.Caption := '';...

Структура: Не могу понять, почему выдает ошибку и как собственно эту ошибку можно исправить?
Привет,не могу понять почему ошибку выдает и как сбстно эту ошибку можно исправить? #include...

Как исправить исправить ошибку в коде
Здравствуйте,помогите пожалуйста исправить ошибку в коде.using System; using System.Threading; ...

Не пойму как исправить исправить ошибку
subroutine iteration(a,b,c,N) real :: a,b,N,c do while (abs(a-b)&gt;eps.or.N&lt;10) ...

Выводит ошибку MBS6006 "CL.exe" exited with code 2. Как исправить эту ошибку?
Иногда возникает эта ошибка и не понимаю, мол откуда она. Погуглил - ничего дельного. Подскажите,...

Выводит ошибку MBS6006 "CL.exe" exited with code 2. Как исправить эту ошибку?
#pragma once #include &quot;iostream&quot; #include &quot;conio.h&quot; #include &quot;cmath&quot; #include &lt;string&gt;...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru