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

Вывод значений на Русском языке

25.05.2015, 05:24. Просмотров 1626. Ответов 12
Метки нет (Все метки)

Доброе всем время суток.

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

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
#include<iostream>
 
using namespace std;
 
int main()
{
    setlocale (LC_ALL, "Rus");
    char a[5];
    int i;
 
    cout << "Введите 5 букв " << endl;
 
    for (i = 1; i <= 5; ++i)
    {
        cin >> a[i];
        cout << endl;
    }
 
    for (i = 1; i <= 5; ++i)
    {
        cout << a[i];
    }
 
    cout << endl;
system ("pause");
return 0;
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.05.2015, 05:24
Ответы с готовыми решениями:

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

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

Ввод и вывод в файл на русском языке
#include &lt;iostream&gt; #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;math.h&gt; #include &lt;conio.h&gt;...

Кодировка: вывод данных на русском языке в консоль
Здравствуйте, уважаемые форумчане! Есть проблема с выводом данных в консоль. Нужно вывести данные...

12
Модератор
Эксперт С++
9917 / 8440 / 5129
Регистрация: 18.12.2011
Сообщений: 22,596
25.05.2015, 07:34 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include<iostream>
#include <windows.h>
using namespace std;
 
int main()
{
   setlocale (LC_ALL, "Rus");
   char a[100];
   cout << "Введите слово:" << endl;
   cin>>a;   // вводится в кодировке 866
   OemToCharA(a,a); // перевод из 866 в 1251
   cout<<a;
   cout << endl;
   system ("pause");
   return 0;
}
2
235 / 193 / 21
Регистрация: 04.06.2014
Сообщений: 1,313
25.05.2015, 07:39 3
Посмотрите в эту сторону http://www.biz-for.ru/books/ha... /index.php.
1
lss
935 / 863 / 356
Регистрация: 10.10.2012
Сообщений: 2,706
25.05.2015, 08:42 4
Лучший ответ Сообщение было отмечено AmRamzes как решение

Решение

Цитата Сообщение от AmRamzes Посмотреть сообщение
Подскажите, как это сделать.
Можно так:
C++
1
2
3
4
5
6
7
8
#include <windows.h>
 
int main()
{
  SetConsoleCP(1251);
  SetConsoleOutputCP(1251);
  ...
}
В свойствах консоли выбрать шрифт: Lucida Console.
1
0 / 0 / 0
Регистрация: 18.05.2015
Сообщений: 81
25.05.2015, 08:44  [ТС] 5
Цитата Сообщение от zss Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include<iostream>
#include <windows.h>
using namespace std;
 
int main()
{
   setlocale (LC_ALL, "Rus");
   char a[100];
   cout << "Введите слово:" << endl;
   cin>>a;   // вводится в кодировке 866
   OemToCharA(a,a); // перевод из 866 в 1251
   cout<<a;
   cout << endl;
   system ("pause");
   return 0;
}
C++
1
OemToCharA(a,a); // перевод из 866 в 1251
Это является ключевым моментом в выводе данных на русском?

C++
1
#include <windows.h>
Что за библиотека?
0
lss
935 / 863 / 356
Регистрация: 10.10.2012
Сообщений: 2,706
25.05.2015, 08:49 6
Цитата Сообщение от AmRamzes Посмотреть сообщение
Что за библиотека?
Заголовочный файл windows.h.
0
Модератор
Эксперт С++
9917 / 8440 / 5129
Регистрация: 18.12.2011
Сообщений: 22,596
25.05.2015, 10:19 7
Цитата Сообщение от AmRamzes Посмотреть сообщение
Это является ключевым моментом
Я отметил это в комментарии.
При вводе с консоли Вы получаете символы в DOS кодировке (866).
Соответственно их надо преобразовать во Windows кодировку (1251),
что и делает функция OemToChar(char* from,char* to); объявленная во windows.h
1
0 / 0 / 0
Регистрация: 18.05.2015
Сообщений: 81
25.05.2015, 18:54  [ТС] 8
Цитата Сообщение от zss Посмотреть сообщение
Я отметил это в комментарии.
При вводе с консоли Вы получаете символы в DOS кодировке (866).
Соответственно их надо преобразовать во Windows кодировку (1251),
что и делает функция OemToChar(char* from,char* to); объявленная во windows.h
спс за информацию ... не знал ...

Добавлено через 7 часов 21 минуту
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
#include<iostream>
#include<windows.h>
 
using namespace std;
 
int main()
{
    setlocale (LC_ALL, "Rus");
    char a[5];
    int i;
 
    cout << "Введите 5 букв " << endl;
 
    for (i = 1; i <= 5; ++i)
    {
        cin >> a[i];
    }
 
    cout << endl;
    
    for (i = 1; i <= 5; ++i)
    {
        OemToCharA(a,a);
        cout << a[i];
    }
 
    cout << endl;
system ("pause");
return 0;
}
Не получается (((

Что касается настройки консоли ... пропишите путь ... не могу я найти изменение шрифтов ... Visual Studio 2012
0
lss
935 / 863 / 356
Регистрация: 10.10.2012
Сообщений: 2,706
25.05.2015, 19:01 9
Цитата Сообщение от AmRamzes Посмотреть сообщение
Что касается настройки консоли ... пропишите путь ... не могу я найти изменение шрифтов ... Visual Studio 2012
...
Установка шрифта Lucida Console
0
0 / 0 / 0
Регистрация: 18.05.2015
Сообщений: 81
25.05.2015, 21:18  [ТС] 10
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
32
33
34
35
#include<iostream>
#include<windows.h>
 
using namespace std;
 
int main()
{
    setlocale (LC_ALL, "Rus");
    
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
    char a[5];
    int i;
 
    cout << "Введите 5 букв " << endl;
 
    for (i = 1; i <= 5; ++i)
    {
        cin >> a[i];
        OemToCharA(a,a);
    }
 
    cout << endl;
    
    for (i = 1; i <= 5; ++i)
    {
        OemToCharA(a,a);
        cout << a[i];
    }
 
    cout << endl;
system ("pause");
return 0;
}
Вроде все перепробовал ... шрифт поменял ... не получается ... (((
0
lss
935 / 863 / 356
Регистрация: 10.10.2012
Сообщений: 2,706
25.05.2015, 21:21 11
Цитата Сообщение от AmRamzes Посмотреть сообщение
Вроде все перепробовал
Не надо всё в кучу валить. Или одно пробуй, или другое (или 2 пост, или 4).
1
0 / 0 / 0
Регистрация: 18.05.2015
Сообщений: 81
25.05.2015, 21:28  [ТС] 12
По всякому уже побывал ...

Добавлено через 3 минуты
УРА !!! ПОЛУЧИЛОСЬ !!!

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
32
33
#include<iostream>
#include<windows.h>
 
using namespace std;
 
int main()
{
    setlocale (LC_ALL, "Rus");
    
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
    char a[5];
    int i;
 
    cout << "Введите 5 букв " << endl;
 
    for (i = 1; i <= 5; ++i)
    {
        cin >> a[i];
    }
 
    cout << endl;
    
    for (i = 1; i <= 5; ++i)
    {
        cout << a[i];
    }
 
    cout << endl;
system ("pause");
return 0;
}
Всем спасибо !!!
0
6912 / 5977 / 2709
Регистрация: 14.04.2014
Сообщений: 25,504
25.05.2015, 22:27 13
Если VS, то можно обойтись без перекодировки, переключения кодировки консоли, и смены шрифта.
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
32
#include <iostream>
#include <locale>
 
using namespace std;
 
int main()
{
    wcin.imbue(locale("rus_rus.866"));
    wcout.imbue(locale("rus_rus.866"));
 
    wchar_t a[5];
    int i;
 
    wcout << L"Введите 5 букв " << endl;
 
    for (i = 0; i < 5; ++i)
    {
        wcin >> a[i];
    }
 
    wcout << endl;
    
    for (i = 0; i < 5; ++i)
    {
        wcout << a[i];
    }
 
    wcout << endl;
 
    system ("pause");
    return 0;
}
И массив индексируется с нуля, а у тебя будет выход за границу.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.05.2015, 22:27

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Ввод и вывод строк на русском языке (кирилице)
Здравствуйте уважаемые форумчани! При решении упражнения возникла следующая проблема, необходимо...

Как реализовать ввод/вывод текста на русском языке?
Вечер добрый, друзья. Вот только что зарегистрировался, т.к. уже нет сил бороться с одной...

GeoTiff - примеры ее использования на языке c , желательно на русском языке
Добрый вечер. Дана курсовая с использованием библиотеки GeoTiff. Подскажите где можно прочитать про...

вывод $show_date на русском языке
в шаблон встроен вот такой код &lt;div id=&quot;section2&quot;&gt;&lt;div class=&quot;section-padding&quot;&gt;&lt;div...


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

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

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