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

Ошибка кодировки? - C++

Восстановить пароль Регистрация
 
Harmonster
9 / 9 / 3
Регистрация: 20.05.2012
Сообщений: 101
24.12.2012, 14:47     Ошибка кодировки? #1
При присваивании русского слова к переменной input типа string - ошибка
Но стоит поменять на английское слово - получается все верно.
Что делать?!

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <conio.h>
#include <iostream>
using namespace std;
int main(){
    setlocale (LC_ALL, "Russian");
    string input;
    string password = "abcd";
    cout << "Введите пароль: ";
         cin >> input;
    if (input != password)
        cout << "Не правильно";
    if (input == password)
        cout << "Правильно";
    getch();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.12.2012, 14:47     Ошибка кодировки?
Посмотрите здесь:

C++ Нет кодировки?!
C++ Кодировки в С++
C++ Перевод кодировки
C++ Кодировки
C++ Кодировки, языки
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Avazart
 Аватар для Avazart
6904 / 5144 / 253
Регистрация: 10.12.2010
Сообщений: 22,617
Записей в блоге: 17
24.12.2012, 15:07     Ошибка кодировки? #2
Так не пробовал ?
( в настойках консоли должен быть выставлен шрифт Lucida Console )
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <windows.h>
 
int main()
{
    using namespace std;
    system("chcp 1251"); 
    string input;
    string password = "abcd";
    
    cout << "Введите пароль: ";
         cin >> input;
    if (input != password)
        cout << "Не правильно";
    if (input == password)
        cout << "Правильно"<<endl;
    system("pause");
}
SummerRain
 Аватар для SummerRain
325 / 324 / 17
Регистрация: 16.12.2012
Сообщений: 544
24.12.2012, 15:13     Ошибка кодировки? #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <string>
#include <iostream>
using namespace std;
int main(){
    setlocale (LC_ALL, "Russian");
    string input;
    string password = "abcd";
    cout << "Введите пароль: ";
         cin >> input;
    if (input != password)
        cout << "Не правильно";
    if (input == password)
        cout << "Правильно";
    system("pause");
}
Harmonster
9 / 9 / 3
Регистрация: 20.05.2012
Сообщений: 101
24.12.2012, 15:14  [ТС]     Ошибка кодировки? #4
Поменял шрифт консоли на Lucida Console. В программе крокозябры
Avazart
 Аватар для Avazart
6904 / 5144 / 253
Регистрация: 10.12.2010
Сообщений: 22,617
Записей в блоге: 17
24.12.2012, 15:15     Ошибка кодировки? #5
C++
1
system("chcp 1251");
Harmonster
9 / 9 / 3
Регистрация: 20.05.2012
Сообщений: 101
24.12.2012, 15:15  [ТС]     Ошибка кодировки? #6
Цитата Сообщение от Avazart Посмотреть сообщение
Так не пробовал ?
( в настойках консоли должен быть выставлен шрифт Lucida Console )
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <windows.h>
 
int main()
{
    using namespace std;
    system("chcp 1251"); 
    string input;
    string password = "abcd";
    
    cout << "Введите пароль: ";
         cin >> input;
    if (input != password)
        cout << "Не правильно";
    if (input == password)
        cout << "Правильно"<<endl;
    system("pause");
}
В программе крокозябры
Avazart
 Аватар для Avazart
6904 / 5144 / 253
Регистрация: 10.12.2010
Сообщений: 22,617
Записей в блоге: 17
24.12.2012, 15:16     Ошибка кодировки? #7
Цитата Сообщение от Harmonster Посмотреть сообщение
Поменял шрифт консоли на Lucida Console. В программе крокозябры
Значит не поменяли
Harmonster
9 / 9 / 3
Регистрация: 20.05.2012
Сообщений: 101
24.12.2012, 15:17  [ТС]     Ошибка кодировки? #8
Цитата Сообщение от SummerRain Посмотреть сообщение
Код C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <string>
#include <iostream>
using namespace std;
int main(){
* * setlocale (LC_ALL, "Russian");
* * string input;
* * string password = "abcd";
* * cout << "Введите пароль: ";
* * * * *cin >> input;
* * if (input != password)
* * * * cout << "Не правильно";
* * if (input == password)
* * * * cout << "Правильно";
* * system("pause");
}
Тоже самое что и в начале
Harmonster
9 / 9 / 3
Регистрация: 20.05.2012
Сообщений: 101
24.12.2012, 15:19  [ТС]     Ошибка кодировки? #9
Цитата Сообщение от Avazart Посмотреть сообщение
Значит не поменяли
Поменял, см скриншот
Миниатюры
Ошибка кодировки?  
Avazart
 Аватар для Avazart
6904 / 5144 / 253
Регистрация: 10.12.2010
Сообщений: 22,617
Записей в блоге: 17
24.12.2012, 15:21     Ошибка кодировки? #10
Должно работать...
Миниатюры
Ошибка кодировки?  
SummerRain
 Аватар для SummerRain
325 / 324 / 17
Регистрация: 16.12.2012
Сообщений: 544
24.12.2012, 15:24     Ошибка кодировки? #11
Цитата Сообщение от Harmonster Посмотреть сообщение
Тоже самое что и в начале
не тоже самое. conio.h на string заменил. У меня всё работает.
Harmonster
9 / 9 / 3
Регистрация: 20.05.2012
Сообщений: 101
24.12.2012, 15:26  [ТС]     Ошибка кодировки? #12
Цитата Сообщение от Avazart Посмотреть сообщение
Должно работать...
Может быть из-за того, что я компилирую в Dev-C++ 4.9.9.2??
Avazart
 Аватар для Avazart
6904 / 5144 / 253
Регистрация: 10.12.2010
Сообщений: 22,617
Записей в блоге: 17
24.12.2012, 15:28     Ошибка кодировки? #13
Цитата Сообщение от Harmonster Посмотреть сообщение
Может быть из-за того, что я компилирую в Dev-C++ 4.9.9.2??
Может...
В Builder и VC++ такое срабатывает...
Harmonster
9 / 9 / 3
Регистрация: 20.05.2012
Сообщений: 101
24.12.2012, 15:30  [ТС]     Ошибка кодировки? #14
Цитата Сообщение от SummerRain Посмотреть сообщение
не тоже самое. conio.h на string заменил. У меня всё работает.
Я же попробовал, зачем говорить что не тоже самое?
Миниатюры
Ошибка кодировки?  
SummerRain
 Аватар для SummerRain
325 / 324 / 17
Регистрация: 16.12.2012
Сообщений: 544
24.12.2012, 15:32     Ошибка кодировки? #15
Цитата Сообщение от Harmonster Посмотреть сообщение
Я же попробовал, зачем говорить что не тоже самое?
ну значит дело в компиляторе, у меня на MSVS 2010 всё работает.

хотя если так попробовать?
C++
1
setlocale(0, "");
Harmonster
9 / 9 / 3
Регистрация: 20.05.2012
Сообщений: 101
24.12.2012, 15:34  [ТС]     Ошибка кодировки? #16
Цитата Сообщение от SummerRain Посмотреть сообщение
ну значит дело в компиляторе, у меня на MSVS 2010 всё работает.

хотя если так попробовать?
C++
1
setlocale(0, "");
Не работает. Походу придется менять IDE.
Avazart
 Аватар для Avazart
6904 / 5144 / 253
Регистрация: 10.12.2010
Сообщений: 22,617
Записей в блоге: 17
24.12.2012, 15:42     Ошибка кодировки? #17
Ну лично мое мнение, нет смысла использовать Dev-C++ 4.9.9.2.
Harmonster
9 / 9 / 3
Регистрация: 20.05.2012
Сообщений: 101
24.12.2012, 15:44  [ТС]     Ошибка кодировки? #18
Цитата Сообщение от Avazart Посмотреть сообщение
Ну лично мое мнение, нет смысла использовать Dev-C++ 4.9.9.2.
Понемногу начинаю осваивать С++. Ноут слабый, Dev-C++ не так сильно лагает как, например MSVS2010
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.12.2012, 15:46     Ошибка кодировки?
Еще ссылки по теме:

C++ Преобразование кодировки
Кодировки (ошибки кодировки) в логировании C++
C++ Ошибка кодировки при выводе оригинального и отсортированного списка

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

Или воспользуйтесь поиском по форуму:
Avazart
 Аватар для Avazart
6904 / 5144 / 253
Регистрация: 10.12.2010
Сообщений: 22,617
Записей в блоге: 17
24.12.2012, 15:46     Ошибка кодировки? #19
Цитата Сообщение от Harmonster Посмотреть сообщение
например MSVS2010
Ну можно компилить с консоли.

Есть такая IDE как CodeBlocks она вроде "легкая", и компилятор можно менять...
Yandex
Объявления
24.12.2012, 15:46     Ошибка кодировки?
Ответ Создать тему
Опции темы

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