Top.Mail.Ru
Ответы

Что нужно сделать, чтобы компилятор считывал руссокоязычные символы и выводил их на консоль ?? Язык С++ !

По дате
По рейтингу
Аватар пользователя
Новичок
11лет

Есть тип wchar_t для символов и wstring для строк, которые используются для кодирования в Unicode. Чтобы этой возможностью воспользоваться нужно соблюсти некоторые условия.

Во-первых, перед тем как осуществлять их ввод/вывод, нужно указать локализацию. Для это первыми строками в main записать две строки:

wcin.imbue(locale(".866"));
wcout.imbue(locale(".866"));

после чего можно использовать "широкие символы", но для их различия требуется явно указывать их тип, указывая заглавную букву L"строка". А для потоков ввода/вывода - wcin/wcout соответственно.

И везде где будут использоваться такие символы/строки, нужно узнавать существует ли их поддержка на уровне используемого класса.

Пример:

#include <iostream>
#include <string>
using namespace std;
int main() {
wcin.imbue(locale(".866"));
wcout.imbue(locale(".866"));

wcout wstring rus;
getline(wcin, rus);
wcout
wcout wchar_t ru;
wcin >> ru;
wcout
wstring test = L" тест";
wcout
wchar_t russian[] = L" Мама мыла раму";
wchar_t point(L'.');
wcout
cin.sync(); cin.get(); // а это гарантированная задержка консоли!!
return 0;
}

Аватар пользователя
Мыслитель
11лет

#include <iostream>
#include <locale.h>

using namespace std;

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

cout system("pause");

return 0;
}

Или Вы хотите, чтобы программа считывала русскоязычные символы и выводила их на консоль?
#include <iostream>
#include <string>

using namespace std;

int main()
{
wstring s;

wcin >> s;
wcout system("pause");

return 0;
}