Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.56/77: Рейтинг темы: голосов - 77, средняя оценка - 4.56
homiCID
0 / 0 / 0
Регистрация: 10.02.2013
Сообщений: 6
1

Ввод/вывод с использование русского языка

10.02.2013, 18:34. Просмотров 15115. Ответов 13
Метки нет (Все метки)

Мне нужно ввести с клавиатуры строку на русском языке (например:"Я живу в России") и вывести её также. Как это сделать? Я сколько не пытался - не получается. Читал на форумах, но так и не нашел решения. Заранее спасибо за помощь.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.02.2013, 18:34
Ответы с готовыми решениями:

Использование русского языка в DevC++
Пишу программу на С++ (недавно начал изучение). Весь код есть, компиляция...

Вывод русского языка в консоли
Доброго времени суток, коллеги! Столкнулся с проблемой при написании...

Подключение русского языка
Недавно нашла,как сделать так,чтобы на экране отображались на русском языке не...

Сортировка слов русского языка
Дана строка, состоящая из русских слов, набранных заглавными буквами и...

Запрограммировать правило русского языка
Правило написания букв И - Е в корнях с чередованием (-бер-, -бир(а)-, -дер-,...

13
Croessmah
++Ͻ
14631 / 8380 / 1582
Регистрация: 27.09.2012
Сообщений: 20,596
Записей в блоге: 2
Завершенные тесты: 1
10.02.2013, 18:38 2
Русские шрифты в консоли

Добавлено через 1 минуту
C++
1
2
3
4
5
6
7
8
9
#include <iostream>
#include <string>
int main (){
    std::string str;
    std::cout<<"enter string: ";
    std::getline(std::cin,str);
    std::cout<<str<<std::endl;
    return 0;
}
1
Kins
59 / 58 / 7
Регистрация: 03.02.2013
Сообщений: 167
10.02.2013, 19:00 3
C++
1
2
3
char ch;
cin >>ch;
cout <<ch;
Добавлено через 21 минуту
Цитата Сообщение от Kins Посмотреть сообщение
C++
1
2
3
char ch;
cin >>ch;
cout <<ch;
сорри, фигню сморозил=)
0
homiCID
0 / 0 / 0
Регистрация: 10.02.2013
Сообщений: 6
10.02.2013, 19:19  [ТС] 4
я это видел уже. попробуй напиши программу, как я описал. буду признателен, если сюда скинешь.

Добавлено через 8 минут
ааааааа все понял. Спасибо))
0
MegaMozg
45 / 45 / 3
Регистрация: 19.12.2008
Сообщений: 110
10.02.2013, 19:21 5
для работы с русским языком в консоли нужно установить соответствующую "локаль"

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <locale>
 
using namespace std;
 
int main()
{
 
    // устанвливаем русскую локаль для консоли
    setlocale(LC_ALL,"Russian");
 
 
    return 0;
}
2
Kins
59 / 58 / 7
Регистрация: 03.02.2013
Сообщений: 167
10.02.2013, 19:30 6
можно просто так setlocale(LC_ALL,"")
2
NIch
400 / 311 / 74
Регистрация: 17.03.2010
Сообщений: 1,120
10.02.2013, 19:34 7
Как вариант небольшая функция...не помню где взял...но хорошо работает.
Архив содержит cpp и h файлы функций:
C++
1
2
string ToDosStr(string input);
string ToWinStr(string input);
Пример использования:
C++
1
cout << ToDosStr("Введите число Y:");
1
Вложения
Тип файла: rar 1.rar (718 байт, 55 просмотров)
Avazart
Эксперт С++
7725 / 5634 / 549
Регистрация: 10.12.2010
Сообщений: 25,416
Записей в блоге: 17
20.02.2013, 02:09 8
Цитата Сообщение от Kins Посмотреть сообщение
можно просто так setlocale(LC_ALL,"")
Дело не в локали а кодировке и шрифте консоли.
В исходниках Windows cp1251 а в консоли cp866. Поэтому нужно коде менять кодировку
system(chcp 1251);
А в самой консоли в свойствах поставить шрифт Lucida Console
0
alsav22
5442 / 4837 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
20.02.2013, 02:16 9
C++
1
2
3
4
5
6
7
8
#include <windows.h>
 
int main()
{
  SetConsoleCP(1251);
  SetConsoleOutputCP(1251);
  ...
}
В свойствах консоли выбрать шрифт: Lucida Console
1
palva
3100 / 2232 / 450
Регистрация: 08.06.2007
Сообщений: 8,132
Записей в блоге: 4
20.02.2013, 03:35 10
По-моему, то, что вы введете с консоли по-русски, будет отображено при выводе тоже русскими буквами.
Конечно, для этого нужно, чтобы в операционной системе был установлен русский язык.
Никаких ухищрений не нужно. Переключайте раскладку и вводите. Пример программы приведен в самом первом ответе.
1
Avazart
Эксперт С++
7725 / 5634 / 549
Регистрация: 10.12.2010
Сообщений: 25,416
Записей в блоге: 17
20.02.2013, 03:58 11
Блин да я же уже сказал в винде разные кодировки .... консоль использует OEM - кодировку, в то время как блокноты и редакторы кода cp1251
0
sativan
2 / 2 / 0
Регистрация: 04.01.2017
Сообщений: 73
22.02.2017, 21:01 12
спасибо брат выручил меня!
0
svetogor
22 / 22 / 7
Регистрация: 01.02.2017
Сообщений: 54
Записей в блоге: 1
22.02.2017, 22:45 13
Цитата Сообщение от homiCID Посмотреть сообщение
Мне нужно ввести с клавиатуры строку на русском языке
Очень правильное намерение. Целиком и полностью согласен, всё должно быть по-русски, и ввод и вывод. Попробуй вот эту функцию в Wind'е:
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
// устанавливает кириллицу в консоли
 
void SetConsole(const wchar_t *pszTitle = NULL, BOOL bFullScreen = FALSE)
{
    CONSOLE_FONT_INFOEX font;
    HANDLE hStdOut = NULL;
 
    // кодовая страница
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
    // шрифт
    font.cbSize = sizeof font;
    font.nFont = 1;
    font.dwFontSize = { 9, 18 };
    font.FontFamily = 0 | FF_DONTCARE & ~TMPF_FIXED_PITCH;
    font.FontWeight = FW_NORMAL;
    wcscpy_s(font.FaceName, LF_FACESIZE, L"Lucida Console");
 
    // установка шрифта
    hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
    if(!SetCurrentConsoleFontEx(hStdOut, FALSE, &font))
        printf("SetConsole: ошибка! Невозможно установить шрифт: %s.\n", FormatErrorMessage(GetLastError()).c_str());
 
    // заголовок и полный экран...
    if(pszTitle)
        SetConsoleTitleW(pszTitle);
    if (bFullScreen)
//      SendMessage(GetConsoleWindow(), WM_SYSCOMMAND, SC_MAXIMIZE, 0);
        ShowWindow(GetConsoleWindow(), SW_MAXIMIZE);
}
Возьми вот этот проект VS-2015. Если у тебя более ранняя версия, скопируй все *.h и *.cpp файлы в свой проект. Используй cons.cpp в других своих проектах.
1
valery1954
0 / 0 / 0
Регистрация: 02.05.2016
Сообщений: 7
Записей в блоге: 1
17.10.2017, 00:24 14
Русские буквы вывод на Windows XP



код:
#include <windows.h>
#include <iostream>

char bufrus[256];
char * rus(const char* text) {
CharToOem(text, bufrus);
return bufrus;
}
int main()
{
setlocale(LC_CTYPE, "rus");
std:: cout<<rus("Великий могучий русский язык\n");
std:: cout<<"\nВеликий могучий русский язык\n";
std::cout << "Hello world!" ;
system("pause");
return 0;
}

Добавлено через 15 секунд
Русские буквы вывод на Windows XP



код:
#include <windows.h>
#include <iostream>

char bufrus[256];
char * rus(const char* text) {
CharToOem(text, bufrus);
return bufrus;
}
int main()
{
setlocale(LC_CTYPE, "rus");
std:: cout<<rus("Великий могучий русский язык\n");
std:: cout<<"\nВеликий могучий русский язык\n";
std::cout << "Hello world!" ;
system("pause");
return 0;
}
0
17.10.2017, 00:24
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.10.2017, 00:24

Компилятор с поддержкой русского языка
Использую MS Visual с++ 6.0, но он не поддерживает русского языка. Если в коде...

Ошибка с подключением русского языка
А так же, почему то выделяет красным число &quot;pi&quot; #include &lt;stdio.h&gt; #include...

Неверное считывание символов русского языка
Visual Studio 2013. При считывании русских символов всеми возможными средствами...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru