Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.72
Aleks fratriecz
3 / 3 / 0
Регистрация: 06.09.2012
Сообщений: 131
#1

Англо русский переводчик - C++

13.03.2013, 22:28. Просмотров 2563. Ответов 25
Метки нет (Все метки)

посмотрите плиз,прога перводчик проверяет слова в текстовом файле(словаре),мне нужно дополнить словарь,но прога в текстовый документ вставляет просто какието символы вместо слов,в чем ошибка??




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
#include <iostream>
#include <map>
#include <string>
#include <fstream>
#include <locale>
#include <sstream>
#include <algorithm>
 
#include <fstream>
#include <conio.h>
#include <stdio.h>
 
using namespace std;
int main()
//--------------------------------------------------------------
{ setlocale(LC_CTYPE, "Russian");
ifstream in("words.txt");
string s1,s2;
map<string,string> words;
//------------------------------------------------------------
while(in>>s1>>s2)
{
words[s1]=s2;
words[s2]=s1;
}
in.close();
//-------------------------------------------------------------
 
 
//-----------------------------------------------------------------
while(1)
{   
cout<<"Введите слово на английском или на русском которое хотите перевести, или write чтобы дополнить словарь: ";
 
{cin>>s1;
if(s1=="write") 
{
     int bal;
     FILE *file;
 
     if ((file = fopen("words.txt","a")) == NULL)
        printf("Файл невозможно открыть\n");
     else{
        for(int i=0; i<5;i++){
           scanf("%d", &bal);
           fwrite (&bal, sizeof(int),1, file );
        }
     }
     fclose(file);
     getch();
return 0;
}
 
if(words.find(s1)!=words.end())
 
 
cout<<"Перевод слова: "<<words[s1];
else 
cout<<"В словаре этого слова не найдено"<<endl;
cin>>s2;
if(s1=="write") 
{
     int bal;
     FILE *file;
 
     if ((file = fopen("words.txt","a")) == NULL)
        printf("Файл невозможно открыть \n");
     else{
        for(int i=0; i<5;i++){
           scanf("%d", &bal);
           fwrite (&bal, sizeof(int),1, file );
        }
     }
     fclose(file);
     getch();
return 0;
}
if(words.find(s2)!=words.end())
cout<<"Перевод слова: "<<words[s2];
else 
cout<<"В словаре этого слова не найдено";
 
//---------------------------------------------------------------------
 
}}}
0
Вложения
Тип файла: txt words.txt (37 байт, 46 просмотров)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.03.2013, 22:28
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Англо русский переводчик (C++):

Англо-русский и русско-английский переводчик в одном приложении - C++
Имеется программа-переводчик. Реализован перевод с англ. на русский. Есть ли возможность запихать туда же и с русского на англ.? Сколько не...

Англо-русский словарь на С++ - C++
Помогите пожалста. Втупляю, немогу придумать ничего дельного. Разработать класс «Граф» для решения следующей задачи. Задан файл,...

Англо-русский словарь - C++
Прошу вас помочь написать мне программу на Borland C, программа (англо-русский словарь) Вот задание: Поиск информации с помощью...

Англо-русский словарь - C++
нужно написать программу &quot;англо-русский и русско-английский словарь&quot; база данных словаря должна содержать синонимичные варианты перевода...

Класс «англо – русский словарь» - C++
Определите класс «англо – русский словарь». Словарь состоит из различных слов английского языка, упорядоченных по алфавиту. Прописные и...

Русско-английский и англо-русский словарь - C++
Здравствуйте господа программисты! Мне нужна помощь. В курсовой работе есть задание &quot;Создать проект «Русско-английский и англо-русский...

25
alsav22
5425 / 4820 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
13.03.2013, 23:45 #2
Вы, вместо слов, int в файл пишите. И зачем здесь бинарная запись?
1
Aleks fratriecz
3 / 3 / 0
Регистрация: 06.09.2012
Сообщений: 131
14.03.2013, 09:35  [ТС] #3
а посмотри пж у меня цикл вводится одно слово потом второе,можно тут какнить сделать чтобы не писать этот цикл для каждого вводимого слова а написать один раз и чтобы после перевода цикл начинался сначало?если да то как?
0
alsav22
5425 / 4820 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
14.03.2013, 21:13 #4
Кликните здесь для просмотра всего текста
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
#include <iostream>
#include <map>
#include <string>
#include <fstream>
#include <locale>
#include <cstdlib>
#include <Windows.h>
 
using namespace std;
 
int main()
{ 
    setlocale(LC_CTYPE, "Russian");
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
    ifstream in("words.txt");
 
    string s1, s2;
    map <string, string> words;
 
    while(in >> s1 >> s2)
    {
        words[s1] = s2;
        words[s2] = s1;
    }
 
    
    in.close();
//-------------------------------------------------------------
//-----------------------------------------------------------------
    while(true)
    {   
        cout << "Введите слово на английском или на русском которое хотите перевести, " 
                "или write чтобы дополнить словарь (для выхода - q): ";
    
        cin >> s1;
        
        if(s1 == "q") break;
        
        if(s1 == "write") 
        {
             string wrd, trn;
             FILE *file;
 
             if ((file = fopen("words.txt","a")) == NULL)
             {
                printf("Файл невозможно открыть\n");
                continue;
             }
             else
             {
                 cout << "Введите слово на английском: ";
                 cin >> wrd; 
                 cout << "Введите перевод: ";
                 cin >> trn;
                 
                 fprintf(file, "%s%c%s%c", wrd.c_str(), ' ', trn.c_str(), '\n');
 
                 words[wrd] = trn;
                 words[trn] = wrd;
             }
             cout << "Слово и перевод записаны" << endl;
             
             fclose(file);
        }
        else
        {
            if(words.find(s1) != words.end())
                cout << "Перевод слова: " << words[s1] << endl;
            else 
                cout << "В словаре этого слова не найдено" << endl;
        }
    }
 
    system("pause");
    return 0;
}
1
Aleks fratriecz
3 / 3 / 0
Регистрация: 06.09.2012
Сообщений: 131
14.03.2013, 21:51  [ТС] #5
глянь я чутка подправил твой вариант т.к в я работаю в дев 4.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
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
#include <iostream>
#include <map>
#include <string>
#include <fstream>
#include <locale>
#include <cstdlib>
 #include <sstream>
#include <algorithm>
 
#include <fstream>
using namespace std;
 
int main()
{ 
  setlocale(LC_CTYPE, "Russian");
  
 
    ifstream in("words.txt");
 
    string s1, s2;
    map <string, string> words;
 
    while(in >> s1 >> s2)
    {
        words[s1] = s2;
        words[s2] = s1;
    }
 
    words["asd"] = "ffff";
    
    in.close();
//-------------------------------------------------------------
//-----------------------------------------------------------------
    while(true)
    {   
        cout << "Ââåäèòå ñëîâî Г*Г* Г*Г*ãëèéñêîì èëè Г*Г* ðóññêîì êîòîðîå õîòèòå ïåðåâåñòè, " 
                "èëè write ÷òîáû äîïîëГ*ГЁГІГј ñëîâГ*ðü (äëÿ âûõîäГ* - q): ";
    
        cin >> s1;
        
        if(s1 == "q") break;
        
        if(s1 == "write") 
        {
             string wrd, trn;
             FILE *file;
 
             if ((file = fopen("words.txt","a")) == NULL)
             {
                printf("Г”Г*éë Г*åâîçìîæГ*Г® îòêðûòü\n");
                continue;
             }
             else
             {
                 cout << "Ââåäèòå ñëîâî Г*Г* Г*Г*ãëèéñêîì: ";
                 cin >> wrd; 
                 cout << "Ââåäèòå ïåðåâîä: ";
                 cin >> trn;
                 
                 fprintf(file, "%s%c%s%c", wrd.c_str(), ' ', trn.c_str(), '\n');
 
                 words[wrd] = trn;
                 words[trn] = wrd;
             }
             cout << "Ñëîâî ГЁ ïåðåâîä Г§Г*ГЇГЁГ±Г*Г*Г»" << endl;
             
             fclose(file);
        }
        else
        {
            if(words.find(s1) != words.end())
                cout << "Ïåðåâîä ñëîâГ*: " << words[s1] << endl;
            else 
                cout << "Г‚ ñëîâГ*ðå ýòîãî ñëîâГ* Г*ГҐ Г*Г*éäåГ*Г®" << endl;
        }
    }
 
    system("pause");
    return 0;
}
0
alsav22
5425 / 4820 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
14.03.2013, 22:34 #6
29 строчку убери, это мусор остался.

Добавлено через 1 минуту
Цитата Сообщение от Aleks fratriecz Посмотреть сообщение
в чем проблема?)
В этом:
C++
1
2
3
4
#include <Windows.h>
...
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
Зачем убрал?
0
Aleks fratriecz
3 / 3 / 0
Регистрация: 06.09.2012
Сообщений: 131
14.03.2013, 22:55  [ТС] #7
говорюже тогда в кансоле при переводе с англ на русский вместо русских слов выдает символьню...
0
alsav22
5425 / 4820 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
14.03.2013, 23:08 #8
Шрифт в консоле какой выбран? Нужно в свойствах консоли выбрать шрифт: Lucida Console.
0
Aleks fratriecz
3 / 3 / 0
Регистрация: 06.09.2012
Сообщений: 131
14.03.2013, 23:13  [ТС] #9
не понял?а где именно это смотреть в деве 4.9?или это в текстовом документе ставить?если в текстовом документе то стоит эта люсида,а всеравно при записи в текстовый документ иероглифы пишутся
0
alsav22
5425 / 4820 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
14.03.2013, 23:41 #10
Цитата Сообщение от Aleks fratriecz Посмотреть сообщение
в смысле?что здесь?
В том смысле, что скрины не хотят прикрепляться... Открываешь консоль, правой конопкой по окну - свойства. Шрифт выбрать. При закрытии выбрать: сохранить для всех окон.
1
alsav22
5425 / 4820 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
14.03.2013, 23:46 #11
Здесь:
1
Миниатюры
Англо русский переводчик   Англо русский переводчик   Англо русский переводчик  

Aleks fratriecz
3 / 3 / 0
Регистрация: 06.09.2012
Сообщений: 131
14.03.2013, 23:58  [ТС] #12
в деве нет сохранить для всех ,там просто ок,все поставил как на скринах всеравно в текстовый файл ироглифы вместо русских букв пишет
0
alsav22
5425 / 4820 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
15.03.2013, 00:04 #13
Цитата Сообщение от Aleks fratriecz Посмотреть сообщение
в деве нет сохранить для всех
Консоль не к деве относится, а к ОС. ОС какая?
1
Aleks fratriecz
3 / 3 / 0
Регистрация: 06.09.2012
Сообщений: 131
15.03.2013, 00:16  [ТС] #14
винда 7 домашняя базовая
0
alsav22
5425 / 4820 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
15.03.2013, 00:33 #15
Файл в какой кодировке?
0
15.03.2013, 00:33
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.03.2013, 00:33
Привет! Вот еще темы с ответами:

Курсовая работа на тему англо-русский словарь - C++
#include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;string.h&gt; #include &lt;clocale&gt; #include &lt;stdlib.h&gt; #include &lt;locale&gt; int...

Реализовать русско-английский и англо-русский словарь - C++
Надо было реализовать словарь с русского на англ и наоборот. #include &quot;iostream&quot; #include &quot;string.h&quot; using namespace std; int...

Англо-русский словарь построен как двоичное дерево. - C++
Всем привет! Помогите пожалуйста с написанием программы:cry: Очень прошу:gcray: Англо-русский словарь построен как двоичное дерево. ...

Работа с файлом, который содержит англо-русский текст - C++
Добрый день! Уважаемые эксперты, помогите с такой задачей: в текстом файле первое идет английское слово, далее если стоит пробел и...


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

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

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