153 / 136 / 45
Регистрация: 15.02.2010
Сообщений: 745
1

Проблемы с кодировкой

12.02.2013, 10:42. Показов 4338. Ответов 6
Метки нет (Все метки)

Проблема в следующем:
Нужно сравнить два слова на русском языке. Одно - читается с текстового файла, другое вводится с консоли.
Понимаю, что нужно переключать кодировки...
типа: setlocale(0,""); и setlocale(0, ".OCP");
Но это не помогает. Как бы не менял кодировки, одинаковые русские слова в файле и с консоли понимаются. как различные.
Подскажите чего и где тут изменить, добавить (в смысле кодировок), чтобы код работал правильно.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <string>
#include <fstream>
    using namespace std;
    int main()
    {
    string a,b;
    setlocale (0,"");
    cin >> a;
    
    ifstream f("1.txt");
    f >> b;
    f.close();
    
    if (a==b) cout << 1;
    else cout << 0;
 
    return 0;
    }
setlocale я поудалял, поскольку нужного результата не добился.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.02.2013, 10:42
Ответы с готовыми решениями:

Проблемы с кодировкой символов
/*Письмо президенту*/ #include &lt;iostream&gt; #include &lt;fstream&gt; using namespace std; int main() {...

Проблемы с кодировкой при сравнении строк
Здравствуйте! Мне, нужно сравнить две строки: одну получаю get запросом(на сайте кодировка windows...

Проблемы с кодировкой кода из txt в cmd
Доброго времени суток. У меня есть код который работает с файлами но у него не верная кодировка...

Проблемы с кодировкой при выводе данных
Пользуюсь хрюшей и VS 2008 Программа 1 #include &lt;fstream&gt; #include &lt;iostream&gt; #include &lt;string&gt;...

6
1386 / 1016 / 323
Регистрация: 28.07.2012
Сообщений: 2,804
12.02.2013, 11:16 2
Верни локаль на русскую, и попробуй использовать вместо string - wstring, вместо cin - wcin, и т. д.
0
153 / 136 / 45
Регистрация: 15.02.2010
Сообщений: 745
12.02.2013, 11:28  [ТС] 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
#include <iostream>
#include <string>
#include <fstream>
 
 
    using namespace std;
    int main()
    {
    wstring a,b;
    wcin >> a;
    
 
    
    wifstream f("1.txt");
    f >> b;
    f.close();
 
    
    if (a==b) cout << 1;
    else cout << 0;
 
 
    return 0;
    }
Пробовал текстовый файл сохранять в кодировках ANSI, UTF-8, Юникод... Результат не меняется. Одинаковые русские слова не сравниваются...
0
Don't worry, be happy
17767 / 10531 / 2034
Регистрация: 27.09.2012
Сообщений: 26,504
Записей в блоге: 1
12.02.2013, 11:32 4
LVV, ось какая?


под винду можно так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <string>
#include <fstream>
#include <windows.h>
    using namespace std;
    int main()
    {
    string a,b;
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    cin >> a;
    
    ifstream f("1.txt");
    f >> b;
    f.close();
    
    if (a==b) cout << 1;
    else cout << 0;
 
    return 0;
    }
1
153 / 136 / 45
Регистрация: 15.02.2010
Сообщений: 745
12.02.2013, 11:57  [ТС] 5
Спасибо, Croessmah. Правда, решая одну проблему создаём новые (с выводом на экран). Но, главное, я понял идею, а дальше разберусь...
0
Don't worry, be happy
17767 / 10531 / 2034
Регистрация: 27.09.2012
Сообщений: 26,504
Записей в блоге: 1
12.02.2013, 11:58 6
Цитата Сообщение от LVV Посмотреть сообщение
с выводом на экран
шрифт Lucida Console
1
3893 / 2818 / 651
Регистрация: 08.06.2007
Сообщений: 9,574
Записей в блоге: 4
12.02.2013, 11:59 7
Другая идея. Можно перекодировать после ввода.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <string>
#include <fstream>
#include <windows.h>
    using namespace std;
    int main()
    {
    string a,b;
    setlocale (0,"");
    cin >> a;
    char buff[100];
    OemToCharA(a.c_str(),buff);
    
    ifstream f("1.txt");
    f >> b;
    f.close();
    
    if (buff==b) cout << 1;
    else cout << 0;
 
    return 0;
    }
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.02.2013, 11:59
Помогаю со студенческими работами здесь

Проблемы с кодировкой при подключении текстового файла
Проблема вот в чем...В файле question.txt лежит вопрос, написанный по русски, но когда в консоле я...

Проблемы с кодировкой при переключении из Debug в Release в MSVS 2010
Собираю проект в режиме дебаг все символы норм отображаются,переключаю на релиз и одни кракозябры,...

Непонятка с кодировкой
Есть следующий код: #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;string&gt; using...

неприятности с кодировкой!
HerProject.cpp: главный файл проекта. #include &quot;stdafx.h&quot; #include &quot;stdio.h&quot; #include...


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

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

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