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

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

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

Мне нужно ввести с клавиатуры строку на русском языке (например:"Я живу в России") и вывести её также. Как это сделать? Я сколько не пытался - не получается. Читал на форумах, но так и не нашел решения. Заранее спасибо за помощь.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.02.2013, 18:34
Ответы с готовыми решениями:

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

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

Ввод и вывод русского языка в консоли а именно в классе
Данный код для вывода и ввода русского языка я использовал в головной функции файла cpp, но в...

Как исправить вывод русского языка
Я скачал программу на сайте хотел запустить и походу не хватает каких то библиотек у меня. ...

13
Don't worry, be happy
17205 / 10083 / 1945
Регистрация: 27.09.2012
Сообщений: 25,158
Записей в блоге: 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
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
0 / 0 / 0
Регистрация: 10.02.2013
Сообщений: 6
10.02.2013, 19:19  [ТС] 4
я это видел уже. попробуй напиши программу, как я описал. буду признателен, если сюда скинешь.

Добавлено через 8 минут
ааааааа все понял. Спасибо))
0
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
59 / 58 / 7
Регистрация: 03.02.2013
Сообщений: 167
10.02.2013, 19:30 6
можно просто так setlocale(LC_ALL,"")
2
401 / 312 / 74
Регистрация: 17.03.2010
Сообщений: 1,119
10.02.2013, 19:34 7
Как вариант небольшая функция...не помню где взял...но хорошо работает.
Архив содержит cpp и h файлы функций:
C++
1
2
string ToDosStr(string input);
string ToWinStr(string input);
Пример использования:
C++
1
cout << ToDosStr("Введите число Y:");
Вложения
Тип файла: rar 1.rar (718 байт, 65 просмотров)
1
Эксперт С++
8289 / 6120 / 613
Регистрация: 10.12.2010
Сообщений: 28,610
Записей в блоге: 30
20.02.2013, 02:09 8
Цитата Сообщение от Kins Посмотреть сообщение
можно просто так setlocale(LC_ALL,"")
Дело не в локали а кодировке и шрифте консоли.
В исходниках Windows cp1251 а в консоли cp866. Поэтому нужно коде менять кодировку
system(chcp 1251);
А в самой консоли в свойствах поставить шрифт Lucida Console
0
5480 / 4875 / 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
3
3786 / 2726 / 630
Регистрация: 08.06.2007
Сообщений: 9,350
Записей в блоге: 4
20.02.2013, 03:35 10
По-моему, то, что вы введете с консоли по-русски, будет отображено при выводе тоже русскими буквами.
Конечно, для этого нужно, чтобы в операционной системе был установлен русский язык.
Никаких ухищрений не нужно. Переключайте раскладку и вводите. Пример программы приведен в самом первом ответе.
1
Эксперт С++
8289 / 6120 / 613
Регистрация: 10.12.2010
Сообщений: 28,610
Записей в блоге: 30
20.02.2013, 03:58 11
Блин да я же уже сказал в винде разные кодировки .... консоль использует OEM - кодировку, в то время как блокноты и редакторы кода cp1251
0
2 / 2 / 0
Регистрация: 04.01.2017
Сообщений: 77
22.02.2017, 21:01 12
спасибо брат выручил меня!
0
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
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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.10.2017, 00:24

Ввод русского языка
Не могу понять, как сделать так, чтобы вместо непонятных иероглифов в командной строке выдавался...

Запрет на ввод русского языка
Использовал preg_match(&quot;/^+$/&quot;,$row) Но если ввести 2 английских слова, то тоже не пропускает,...

Использование русского языка в программе
Подскажите пожалуйста как в паскале сделать русский язык?

Использование русского языка в дате POST запроса
Собственно какую кодировку использовать? При успользованию UTF8 какие-то символы типа P&gt;P и т.д....

Вывод русского языка
Ввожу #include &lt;locale.h&gt; setlocale(LC_ALL,&quot;.1251&quot;); или setlocale(LC_ALL,&quot;rus&quot;); На...

ввод и вывод информации, с использование файлов
ввод и вывод информации, с использование файлов


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

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

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