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

Кириллица в консоли - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 45, средняя оценка - 4.78
Elyno
0 / 0 / 0
Регистрация: 06.05.2012
Сообщений: 8
06.05.2012, 17:13     Кириллица в консоли #1
Здравствуйте.
Произошла вот такая проблема. Надеюсь, поможете.
Написал легкую программу на C++, написал редактором Dev-C++ и скомпилировал тоже им, а когда открываю программу, в командной строке вместо русских букв какие-то иероглифы. Если открыть просто командную строку, то всё пишет нормально.
Пересмотрел, уже все темы ничего не помогает.
Скрины могу предоставить только в очень плохом качестве, где почти ничего не видно.
Код:
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
36
//
// Program to convert temperature from Celsius degree
// units into Fahrenheit degree units:
// Fahrenheit = Celsius * (212 - 32)/100 + 32
//
#include <cstdio>
#include <cstdlib>
#include <iostream>
using namespace std;
 
int main(int nNumberofArgs, char* pszArgs[])
{
// enter the temperature in Celsius
int celsius;
cout << "РУССКИЙ ТЕКСТ:";
cin >> celsius;
 
// calculate conversion factor for Celsius
// to Fahrenheit
int factor;
factor = 212 - 32;
 
// use conversion factor to convert Celsius
// into Fahrenheit values
int fahrenheit;
fahrenheit = factor * celsius/100 + 32;
 
// output the results (followed by a NewLine)
cout << "РУССКИЙ ТЕКСТ:";
cout << fahrenheit << endl;
 
// wait until user is ready before terminating program
// to allow the user to see the program results
system("PAUSE");
return 0; 
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
panicwassano
590 / 558 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
06.05.2012, 17:27     Кириллица в консоли #2
с чего вы взяли что там должны быть русские буквы? кодировки разные
#include <windows.h>
SetConsoleCP(1251)
SetConsoleOutputCP(1251)
обязательно сменить шрифт в консоле
либо CharToOem и OemToChar
Sylar9
-20 / 55 / 2
Регистрация: 04.09.2011
Сообщений: 1,888
Записей в блоге: 1
06.05.2012, 17:28     Кириллица в консоли #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 <cstdio>
#include <cstdlib>
#include <locale.h>
#include <iostream>
using namespace std;
 
int main(int nNumberofArgs, char* pszArgs[])
{
// enter the temperature in Celsius
setlocale(LC_ALL, "Rus");
int celsius;
cout << "РУССКИЙ ТЕКСТ:";
cin >> celsius;
 
// calculate conversion factor for Celsius
// to Fahrenheit
int factor;
factor = 212 - 32;
 
// use conversion factor to convert Celsius
// into Fahrenheit values
int fahrenheit;
fahrenheit = factor * celsius/100 + 32;
 
// output the results (followed by a NewLine)
cout << "РУССКИЙ ТЕКСТ:";
cout << fahrenheit << endl;
 
// wait until user is ready before terminating program
// to allow the user to see the program results
system("PAUSE");
return 0; 
}
Elyno
0 / 0 / 0
Регистрация: 06.05.2012
Сообщений: 8
06.05.2012, 17:29  [ТС]     Кириллица в консоли #4
К сожалению в консоли нет таких шрифтов.
Sylar9
-20 / 55 / 2
Регистрация: 04.09.2011
Сообщений: 1,888
Записей в блоге: 1
06.05.2012, 17:30     Кириллица в консоли #5
Цитата Сообщение от Elyno Посмотреть сообщение
К сожалению в консоли нет таких шрифтов.
попробуй мой вариант
Elyno
0 / 0 / 0
Регистрация: 06.05.2012
Сообщений: 8
06.05.2012, 17:31  [ТС]     Кириллица в консоли #6
Не помогло. В командной строке так же странные символы.
panicwassano
590 / 558 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
06.05.2012, 17:31     Кириллица в консоли #7
Цитата Сообщение от Elyno Посмотреть сообщение
К сожалению в консоли нет таких шрифтов.
есть, если вам просто вывод нужно можно использовать код приложенный выше используя setlocale
но для ввода русских букв он не подойдет
Sylar9
-20 / 55 / 2
Регистрация: 04.09.2011
Сообщений: 1,888
Записей в блоге: 1
06.05.2012, 17:32     Кириллица в консоли #8
Цитата Сообщение от Elyno Посмотреть сообщение
Не помогло. В консоли так же странные символы.
тогда тебе нужен русс доб для DEV C++. ща я тебе скину
Elyno
0 / 0 / 0
Регистрация: 06.05.2012
Сообщений: 8
06.05.2012, 17:33  [ТС]     Кириллица в консоли #9
И что Вы тогда предлагаете?
Sylar9
-20 / 55 / 2
Регистрация: 04.09.2011
Сообщений: 1,888
Записей в блоге: 1
06.05.2012, 17:34     Кириллица в консоли #10
На ссылку на дополнение инструкция внутри
panicwassano
590 / 558 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
06.05.2012, 17:34     Кириллица в консоли #11
все работает
Миниатюры
Кириллица в консоли  
Elyno
0 / 0 / 0
Регистрация: 06.05.2012
Сообщений: 8
06.05.2012, 17:36  [ТС]     Кириллица в консоли #12
Помогло. Большое спасибо!
А с остальными языками программирования будут такие же проблемы?
panicwassano
590 / 558 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
06.05.2012, 17:37     Кириллица в консоли #13
Цитата Сообщение от Elyno Посмотреть сообщение
А с остальными языками программирования будут такие же проблемы?
проблема не с языком программирования а с кодировками, пишите на английском
Sylar9
-20 / 55 / 2
Регистрация: 04.09.2011
Сообщений: 1,888
Записей в блоге: 1
06.05.2012, 17:37     Кириллица в консоли #14
Цитата Сообщение от Elyno Посмотреть сообщение
Помогло. Большое спасибо!
А с остальными языками программирования будут такие же проблемы?
Помогло мое ?
Elyno
0 / 0 / 0
Регистрация: 06.05.2012
Сообщений: 8
06.05.2012, 17:41  [ТС]     Кириллица в консоли #15
Цитата Сообщение от Sylar9 Посмотреть сообщение
Помогло мое ?
Да помогло ваше. Огромное спасибо.

Добавлено через 1 минуту
Цитата Сообщение от panicwassano Посмотреть сообщение
проблема не с языком программирования а с кодировками, пишите на английском
А если я хочу написать например на Java и мне нужно на русском. Как исправить ошибку кодировки?

Да-да, я чайник. ^_^
Sylar9
-20 / 55 / 2
Регистрация: 04.09.2011
Сообщений: 1,888
Записей в блоге: 1
06.05.2012, 17:43     Кириллица в консоли #16
Цитата Сообщение от Elyno Посмотреть сообщение
Да помогло ваше. Огромное спасибо.

Добавлено через 1 минуту


А если я хочу написать например на Java и мне нужно на русском. Как исправить ошибку кодировки?

Да-да, я чайник. ^_^
вам нужен другой компилятор или среда разработки. Я работал с Java, вроде бы там нет ошибок с кодировками, по крайний мере, я писал на русском и на русском выводилось
Elyno
0 / 0 / 0
Регистрация: 06.05.2012
Сообщений: 8
06.05.2012, 17:46  [ТС]     Кириллица в консоли #17
А переустановка Windows не поможет?
panicwassano
590 / 558 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
06.05.2012, 17:46     Кириллица в консоли #18
Цитата Сообщение от Elyno Посмотреть сообщение
А переустановка Windows не поможет?
проблема как раз в windows переустановка не поможет. Ибо кодировка консоли 866
Sylar9
-20 / 55 / 2
Регистрация: 04.09.2011
Сообщений: 1,888
Записей в блоге: 1
06.05.2012, 17:48     Кириллица в консоли #19
Цитата Сообщение от Elyno Посмотреть сообщение
А переустановка Windows не поможет?
помагу
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.05.2012, 17:49     Кириллица в консоли
Еще ссылки по теме:

Подсчитать количество вхождений буквы (кириллица) в строку (кириллица) C++
C++ Кириллица в консоли
C++ Кириллица в консоли

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

Или воспользуйтесь поиском по форуму:
Elyno
0 / 0 / 0
Регистрация: 06.05.2012
Сообщений: 8
06.05.2012, 17:49  [ТС]     Кириллица в консоли #20
Спасибо вам.
Весь день решение искал. =)
Ну т.е. я сейчас могу спокойно работать в С++?
Yandex
Объявления
06.05.2012, 17:49     Кириллица в консоли
Ответ Создать тему
Опции темы

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