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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 1970, средняя оценка - 4.82
frech
33 / 33 / 0
Регистрация: 17.07.2008
Сообщений: 558
#1

Русские шрифты в консоли - C++

02.08.2008, 16:35. Просмотров 256099. Ответов 58
Метки нет (Все метки)

всем привет. Я новичек, и у меня такой вопрос. Как написать сообщение с русскими буквами, чтоб нормально показывала? Например:
cout<<"hello world"; выводить сообщение нормальна? с английсками шрифтами
cout<<"привет мир"; выводить в каком не понятном языке, какие та закавычки.

Подобные темы:
22
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.08.2008, 16:35
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Русские шрифты в консоли (C++):

Очередные русские шрифты в консоли... - C++
Помогите пожалуйста) вот код: #include &lt;iostream&gt; #include &quot;windows.h&quot; using namespace std; int (void) { ...

Русские шрифты в консоли - продолжение - C++
Всем привет. Я вижу(и прочитал) прилепленную тему на верху, но ответа на свой ньюанс не нашел. Есть такая программа, написанная на...

Как заставить консоль понимать русский язык? (русские шрифты в консоли) - C++
Добрый вечер. Нужна ваша помощь С++ не понимает русский язык

Русские шрифты в c++ - C++
Работаем в Visual Studio 2010. В char переменную пишем информацию русскими символами, сохраняем, записываем в файл, читаем из файла и...

Чтения из файла Русские шрифты - C++
Не могу не как догнать перепробовал много вариантов не получается ,помогите разобраться. ...

Значения переменных - русские шрифты - C++
Здравствуйте, такая проблема: Как сделать так чтобы если я создал string tmp = &quot;й,ц,у,К,Е,Н,г,Ш,щ&quot;; то чтобы и работало с русскими...

58
kezone
0 / 0 / 0
Регистрация: 06.08.2009
Сообщений: 4
22.08.2009, 12:48 #31
у меня и без <locale.h> катит

Добавлено через 39 минут 12 секунд
[b]Biblio[/
спасибо за файл,но не разобраться куда его пихать(MS Visual Studio 2005)
0
RootSpy
Сообщений: n/a
07.09.2009, 18:39 #32
ну дык нужно библиотеку подключить #include <russian.h>
ISergey
Maniac
Эксперт С++
1376 / 887 / 53
Регистрация: 02.01.2009
Сообщений: 2,663
Записей в блоге: 1
07.09.2009, 18:44 #33
Цитата Сообщение от RootSpy Посмотреть сообщение
ну дык нужно библиотеку подключить #include <russian.h>
Нету такой библиотеки в С++
0
RootSpy
Сообщений: n/a
07.09.2009, 18:46 #34
Цитата Сообщение от ISergey Посмотреть сообщение
Нету такой библиотеки в С++
Я конечно спорить не буду. Но мне препод говорил, что она существует)))))))
Monte-Cristo
2790 / 1376 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
07.09.2009, 22:28 #35
Цитата Сообщение от RootSpy Посмотреть сообщение
Я конечно спорить не буду. Но мне препод говорил, что она существует
она может и сущесвует, но самописная.
1
Maestro
Маэстро
Вирусоборец
1239 / 363 / 28
Регистрация: 06.09.2009
Сообщений: 780
13.09.2009, 21:24 #36
Цитата Сообщение от Monte-Cristo Посмотреть сообщение
она может и сущесвует, но самописная.
Именно. Содержимое russian.h
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream.h>
#include <windows.h>
char* Rus(const char* text);
 
char bufRus[256];
char* Rus(const char* text)
{
   CharToOem(text, bufRus);
   return bufRus;
}
И не забываем включать заголовочный файл в программу. Приблизительный пример.
C++
1
2
3
4
5
6
7
8
9
#include <iostream.h>
#include <conio.h>
#include "russian.h"
void main()
{
  cout<<" Добро пожаловать в мир программирования"<<endl;
 
  getch();
}
Можно ещё открыть файл .cpp в AkelPad'e и пересохранить его в кодировке OEM (866).

Или такой вариант с CharToOemA

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <windows.h>
using namespace std;
 
char* convert(char* str)
{
   char* s;
   CharToOemA(str, s); // Функция и конвертация.
   return s;
}
 
int main()
{
   cout<<convert("Привет Мир!!!");
   cin.get();
   
   return 0;
}
Цитата Сообщение от TheKnyazz Посмотреть сообщение
Эта байда работает норм вроде в любом компиляторе, но замеченны бока при использовании в циклах, хз почему появляются кракозябры на 2+ итерации.
ЗЫ, ф-цию нагло спер не помню где.
Ссылки на другие форумы запрещены правилами.

А вот по поводу боков, то, да, мне самому хотелось бы узнать, отчего при втором проходе(итерации) некоторые символы не кодируются?
0
Monte-Cristo
2790 / 1376 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
13.09.2009, 22:22 #37
Цитата Сообщение от Maestrino Посмотреть сообщение
Вот здесь.
Ознакомся с правилами форума. Размещать ссылки на другие форумы - запрещено (Пункт 3.7).
0
ISergey
Maniac
Эксперт С++
1376 / 887 / 53
Регистрация: 02.01.2009
Сообщений: 2,663
Записей в блоге: 1
14.09.2009, 03:25 #38
Цитата Сообщение от Maestrino Посмотреть сообщение
она может и сущесвует, но самописная.
Именно. Содержимое russian.h
Плохой пример.. кстати найдите разницу между функциями CharToOemA, CharToOemW и макросом - CharToOem
0
Maestro
Маэстро
Вирусоборец
1239 / 363 / 28
Регистрация: 06.09.2009
Сообщений: 780
14.09.2009, 10:33 #39
Цитата Сообщение от ISergey Посмотреть сообщение
кстати найдите разницу между функциями CharToOemA, CharToOemW
Первая - версия ANSI, вторая - версия Unicode.
0
easybudda
Модератор
Эксперт CЭксперт С++
9683 / 5633 / 956
Регистрация: 25.07.2009
Сообщений: 10,813
14.09.2009, 14:50 #40
Цитата Сообщение от Maestrino Посмотреть сообщение
char* convert(char* str) {
char* s;
CharToOemA(str, s); // Функция и конвертация.
return s; }
Так не будет работать (ну не должно бы по крайней мере) - память под *s нигде не выделяется.
0
body90
364 / 297 / 8
Регистрация: 26.05.2009
Сообщений: 2,676
14.09.2009, 15:54 #41
Есть более интересный способ:
Создаешь новый проект, нажимаешь "Сохранить как...", в окне сохранения файла (возле кнопки "Сохранить") есть треугольничек, сохранить с кодировкой, "Да", и в списке выбираешь "Cirilic (DOS) - code page 866", "ОК".
Вот и будет тебе русский текст без всяких извращений со шрифтами, которые на другой машине всё равно будут стандартными...
5
kravam
быдлокодер
1700 / 887 / 45
Регистрация: 04.06.2008
Сообщений: 5,494
16.09.2009, 17:00 #42
Цитата Сообщение от Search.. Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
#include <stdio.h> /* Для printf */ 
#include <locale.h> /* Для русского языка */   
 
int main(int argc, char * argv []) { 
 setlocale(LC_ALL,"Rus"); /* Обязательно должно быть первым */ 
 printf("Русский язык !\n");   
 return 0; 
}
У меня так не получается почему-то. Проблему решил, но по-другому. А хотелось бы так.
0
Paulie
Айхрень...
306 / 174 / 4
Регистрация: 02.06.2009
Сообщений: 1,078
16.09.2009, 17:18 #43
kravam, вчера только пропарсил 1000 страниц мсдна в поиске проблемы нерусских иероглифов. Решил таки setlocaleoм, должно всё работать:
в начале функции _tmain() прописал:
setlocale(LC_ALL, "Russian"); и всё ок
0
kravam
быдлокодер
1700 / 887 / 45
Регистрация: 04.06.2008
Сообщений: 5,494
16.09.2009, 18:00 #44
Я верю, что тебе везёт. Как и многим здесь. А мн не везёт, видишь как...
0
M128K145
Эксперт С++
8293 / 3513 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
16.09.2009, 19:03 #45
kravam, какая среда?
0
16.09.2009, 19:03
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.09.2009, 19:03
Привет! Вот еще темы с ответами:

Русские буквы консоли - C++
Знаю что таких тембыло очень много, но у меня никак не получается вывести слово &quot;Привет&quot; в консоли. Пробую так ...

Русские буквы в консоли - C++
У меня прекрастно выводятся русские буквы в консоль, но если я ввожу русский текст в какуюту переменную, то вывести ее коректно не...

Русские слова в консоли - C++
Здравствуйте,как сделать так что бы в консоли отображались слова setlocale(0,&quot;rus&quot;); я сделала,но вот беда если допустим задать русское...

Считать русские и английские символы с консоли - C++
Собственно как? Нужно читать путь до каталога, который может содержать русские и английские символы. Повсеместно использую wchar_t, читаю...


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

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

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