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

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

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.72
Aleks fratriecz
3 / 3 / 0
Регистрация: 06.09.2012
Сообщений: 130
13.03.2013, 22:28     Англо русский переводчик #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
#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<<"В словаре этого слова не найдено";
 
//---------------------------------------------------------------------
 
}}}
Вложения
Тип файла: txt words.txt (37 байт, 43 просмотров)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
13.03.2013, 23:45     Англо русский переводчик #2
Вы, вместо слов, int в файл пишите. И зачем здесь бинарная запись?
Aleks fratriecz
3 / 3 / 0
Регистрация: 06.09.2012
Сообщений: 130
14.03.2013, 09:35  [ТС]     Англо русский переводчик #3
а посмотри пж у меня цикл вводится одно слово потом второе,можно тут какнить сделать чтобы не писать этот цикл для каждого вводимого слова а написать один раз и чтобы после перевода цикл начинался сначало?если да то как?
alsav22
5282 / 4801 / 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;
}
Aleks fratriecz
3 / 3 / 0
Регистрация: 06.09.2012
Сообщений: 130
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;
}
alsav22
5282 / 4801 / 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);
Зачем убрал?
Aleks fratriecz
3 / 3 / 0
Регистрация: 06.09.2012
Сообщений: 130
14.03.2013, 22:55  [ТС]     Англо русский переводчик #7
говорюже тогда в кансоле при переводе с англ на русский вместо русских слов выдает символьню...
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
14.03.2013, 23:08     Англо русский переводчик #8
Шрифт в консоле какой выбран? Нужно в свойствах консоли выбрать шрифт: Lucida Console.
Aleks fratriecz
3 / 3 / 0
Регистрация: 06.09.2012
Сообщений: 130
14.03.2013, 23:13  [ТС]     Англо русский переводчик #9
не понял?а где именно это смотреть в деве 4.9?или это в текстовом документе ставить?если в текстовом документе то стоит эта люсида,а всеравно при записи в текстовый документ иероглифы пишутся
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
14.03.2013, 23:41     Англо русский переводчик #10
Цитата Сообщение от Aleks fratriecz Посмотреть сообщение
в смысле?что здесь?
В том смысле, что скрины не хотят прикрепляться... Открываешь консоль, правой конопкой по окну - свойства. Шрифт выбрать. При закрытии выбрать: сохранить для всех окон.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
14.03.2013, 23:46     Англо русский переводчик #11
Здесь:
Миниатюры
Англо русский переводчик   Англо русский переводчик   Англо русский переводчик  

Aleks fratriecz
3 / 3 / 0
Регистрация: 06.09.2012
Сообщений: 130
14.03.2013, 23:58  [ТС]     Англо русский переводчик #12
в деве нет сохранить для всех ,там просто ок,все поставил как на скринах всеравно в текстовый файл ироглифы вместо русских букв пишет
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
15.03.2013, 00:04     Англо русский переводчик #13
Цитата Сообщение от Aleks fratriecz Посмотреть сообщение
в деве нет сохранить для всех
Консоль не к деве относится, а к ОС. ОС какая?
Aleks fratriecz
3 / 3 / 0
Регистрация: 06.09.2012
Сообщений: 130
15.03.2013, 00:16  [ТС]     Англо русский переводчик #14
винда 7 домашняя базовая
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
15.03.2013, 00:33     Англо русский переводчик #15
Файл в какой кодировке?
Aleks fratriecz
3 / 3 / 0
Регистрация: 06.09.2012
Сообщений: 130
15.03.2013, 00:38  [ТС]     Англо русский переводчик #16
файл txt кодировка люся каторую ты писал обычная шрифт 12 заподноевропейский набор символов
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
15.03.2013, 00:50     Англо русский переводчик #17
Такой код попробуй (ввод по русски) и покажи скрин консоли при работе и этот код.
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
#include <iostream>
#include <string>
#include <fstream>
#include <cstdlib>
#include <windows.h>
using namespace std;
 
int main()
{
    
    setlocale(0, "");
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    
    string str;
    
    cin >> str;
    
    cout << str << endl;
    
    cout << "ГђГіГ±Г±ГЄГЁГ© ГІГҐГЄГ±ГІ" << endl;
    
    ofstream fout("1.txt");
    fout << str;
    
    system("pause");
    return 0;
}
Миниатюры
Англо русский переводчик  
Aleks fratriecz
3 / 3 / 0
Регистрация: 06.09.2012
Сообщений: 130
15.03.2013, 00:58  [ТС]     Англо русский переводчик #18
документ прикрепи а то у меня пустая консоль вылазит при запуске
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
15.03.2013, 01:02     Англо русский переводчик #19
Цитата Сообщение от Aleks fratriecz Посмотреть сообщение
а то у меня пустая консоль вылазит при запуске
Вылазит и ладно... Вводи что-нибудь по русски и жми Enter.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.03.2013, 01:03     Англо русский переводчик
Еще ссылки по теме:

Курсовая работа на тему англо-русский словарь C++
Работа с файлом, который содержит англо-русский текст C++
Реализовать русско-английский и англо-русский словарь C++

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

Или воспользуйтесь поиском по форуму:
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
15.03.2013, 01:03     Англо русский переводчик #20
И вот это покажи:
Миниатюры
Англо русский переводчик  
Yandex
Объявления
15.03.2013, 01:03     Англо русский переводчик
Ответ Создать тему
Опции темы

Текущее время: 00:06. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru