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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 51, средняя оценка - 4.84
homiCID
0 / 0 / 0
Регистрация: 10.02.2013
Сообщений: 6
#1

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

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

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

Использование русского языка в DevC++ C++
Компилятор с поддержкой русского языка C++
Поддержка русского языка в Embarcadero RAD Studio XE3 на Си++ C++
C++ Произвольное слово разбить для переноса по правилам русского языка
Вместо русского языка в DOS выходят непонятные знаки и слова C++
Ошибка с подключением русского языка C++
C++ Подключение русского языка
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт CЭксперт С++
 Аватар для Croessmah
12528 / 7090 / 797
Регистрация: 27.09.2012
Сообщений: 17,500
Записей в блоге: 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;
}
Kins
 Аватар для Kins
59 / 58 / 6
Регистрация: 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;
сорри, фигню сморозил=)
homiCID
0 / 0 / 0
Регистрация: 10.02.2013
Сообщений: 6
10.02.2013, 19:19  [ТС]     Ввод/вывод с использование русского языка #4
я это видел уже. попробуй напиши программу, как я описал. буду признателен, если сюда скинешь.

Добавлено через 8 минут
ааааааа все понял. Спасибо))
MegaMozg
 Аватар для MegaMozg
44 / 44 / 1
Регистрация: 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;
}
Kins
 Аватар для Kins
59 / 58 / 6
Регистрация: 03.02.2013
Сообщений: 167
10.02.2013, 19:30     Ввод/вывод с использование русского языка #6
можно просто так setlocale(LC_ALL,"")
NIch
 Аватар для NIch
399 / 310 / 27
Регистрация: 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:");
Вложения
Тип файла: rar 1.rar (718 байт, 47 просмотров)
Avazart
 Аватар для Avazart
7037 / 5214 / 259
Регистрация: 10.12.2010
Сообщений: 22,918
Записей в блоге: 17
20.02.2013, 02:09     Ввод/вывод с использование русского языка #8
Цитата Сообщение от Kins Посмотреть сообщение
можно просто так setlocale(LC_ALL,"")
Дело не в локали а кодировке и шрифте консоли.
В исходниках Windows cp1251 а в консоли cp866. Поэтому нужно коде менять кодировку
system(chcp 1251);
А в самой консоли в свойствах поставить шрифт Lucida Console
alsav22
5411 / 4807 / 442
Регистрация: 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
palva
 Аватар для palva
2439 / 1661 / 208
Регистрация: 08.06.2007
Сообщений: 6,576
Записей в блоге: 4
20.02.2013, 03:35     Ввод/вывод с использование русского языка #10
По-моему, то, что вы введете с консоли по-русски, будет отображено при выводе тоже русскими буквами.
Конечно, для этого нужно, чтобы в операционной системе был установлен русский язык.
Никаких ухищрений не нужно. Переключайте раскладку и вводите. Пример программы приведен в самом первом ответе.
Avazart
 Аватар для Avazart
7037 / 5214 / 259
Регистрация: 10.12.2010
Сообщений: 22,918
Записей в блоге: 17
20.02.2013, 03:58     Ввод/вывод с использование русского языка #11
Блин да я же уже сказал в винде разные кодировки .... консоль использует OEM - кодировку, в то время как блокноты и редакторы кода cp1251
sativan
0 / 0 / 0
Регистрация: 04.01.2017
Сообщений: 1
22.02.2017, 21:01     Ввод/вывод с использование русского языка #12
спасибо брат выручил меня!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.02.2017, 22:45     Ввод/вывод с использование русского языка
Еще ссылки по теме:

В консоли вместо русского языка выводятся вопросительные знаки C++
Неверное считывание символов русского языка C++
Замена нижнего регистра литер русского языка, вводимых с клавиатуры, на верхний регистр C++
Произвольное слово разбить для переноса по правилам русского языка C++
C++ Заменить в программе, переводящую строку в двоичный код, консольный ввод/вывод на файловый ввод/вывод

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

Или воспользуйтесь поиском по форуму:
svetogor
4 / 4 / 2
Регистрация: 01.02.2017
Сообщений: 24
Записей в блоге: 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 в других своих проектах.
Yandex
Объявления
22.02.2017, 22:45     Ввод/вывод с использование русского языка
Ответ Создать тему
Опции темы

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