Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.10.2012, 15:59   #1
three_cats
Форумчанин
 
Аватар для three_cats
 
Регистрация: 27.09.2012
Сообщений: 175
Смущение Что сделать с вводом русских символов?

Как устранить следующую проблему?



Код:
#include <iostream>
#include <locale>
#include <conio.h>
#include <string>

using namespace std;

int main() {
    
setlocale(LC_ALL,"Russian");

cout << "Введите, как вас зовут: ";
string name;
cin >> name;

cout << "Привет, " << name << "!" << endl;

cout << "Нажмите любую клавишу для продолжения...";
_getch();
return 0;    
}
Никто

мой блог
three_cats вне форума Ответить с цитированием
Старый 23.10.2012, 20:33   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Решение не очень:
Код:
#include <iostream>
#include <windows.h>
#include <conio.h>
#include <string>

using namespace std;

int main()
{

    setlocale(LC_ALL, "Russian.866");

    cout << "Введите, как вас зовут: ";
    string name;
    cin >> name;

    cout << "Привет, " << name << "!" << endl;

    cout << "Нажмите любую клавишу для продолжения...";
    _getch();
    return 0;
}
Но нужно перекодировать в cp866 и строки в cpp файле.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 24.10.2012, 01:56   #3
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Проще всем потокам через imbue поставить 866 и все.
p51x вне форума Ответить с цитированием
Старый 25.10.2012, 09:47   #4
three_cats
Форумчанин
 
Аватар для three_cats
 
Регистрация: 27.09.2012
Сообщений: 175
По умолчанию

BDA, теперь вот так:



Цитата:
Но нужно перекодировать в cp866 и строки в cpp файле.
У меня сейчас dev-c++, каким образом это сделать, я пока не разбирался, но оно, я понимаю, должно решить новую проблему?..
Никто

мой блог
three_cats вне форума Ответить с цитированием
Старый 25.10.2012, 11:14   #5
rmv240899
Форумчанин
 
Регистрация: 18.02.2012
Сообщений: 155
По умолчанию

В начало кода пишем
Код:
#include <windows.h>
В main'e в начало пишем
Код:
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
setlocale убираем.
rmv240899 вне форума Ответить с цитированием
Старый 27.10.2012, 10:57   #6
Че Гевара
Форумчанин
 
Аватар для Че Гевара
 
Регистрация: 25.09.2012
Сообщений: 182
По умолчанию

Вот ссылка, как это сделать в Dev-C++
http://kpolyakov.narod.ru/school/c/faq.htm#rus
Отладка кода вдвое сложнее, чем его написание. Так что если вы пишете код настолько умно, насколько можете, то вы по определению недостаточно сообразительны, чтобы его отлаживать.
Brian W. Kernighan.
Че Гевара вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод русских символов из MSSQL DimaKGD PHP 8 06.06.2015 10:09
Кодировка русских символов Dеlphi Общие вопросы Delphi 6 26.07.2011 08:39
надо сделать чтоб скрипт работал не только для русских букв но и для англ. и символов. marianna14 Помощь студентам 0 22.06.2011 00:46
UnicodeString - кодирование русских символов. Freeman C++ Builder 3 15.06.2011 03:32