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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 47, средняя оценка - 4.98
Sergey_O
5 / 5 / 1
Регистрация: 09.12.2009
Сообщений: 65
#1

Русские шрифты в c++ - C++

25.05.2010, 20:47. Просмотров 6148. Ответов 12
Метки нет (Все метки)

Работаем в Visual Studio 2010.

В char переменную пишем информацию русскими символами, сохраняем, записываем в файл, читаем из файла и снова выводим на экран.
Выводятся иероглифы.

Как я понимаю, проблема с кодировкой, но как проще всего это исправить?

Сразу скажу, что функция:
C++
1
2
3
4
void RussianLang(void) // Поддержка русского шрифта
{
setlocale(LC_ALL,"Russian");
}
присутствует, но не помогает конкретно с занесением русских букв(чтение запись).
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.05.2010, 20:47
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Русские шрифты в c++ (C++):

Русские шрифты в консоли - C++
всем привет. Я новичек, и у меня такой вопрос. Как написать сообщение с русскими буквами, чтоб нормально показывала? :rtfm:Например: ...

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

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

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

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

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Iworb
анимешник++
93 / 60 / 2
Регистрация: 03.11.2009
Сообщений: 413
25.05.2010, 21:01 #2
C++
1
2
3
4
5
6
7
8
#include <windows.h>
 
int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
return 0;
}
Правда на счет visual studio - не уверен, сработает ли, но под Dev-cpp пашет
0
Crudelis
Шаровик затейник
674 / 416 / 13
Регистрация: 06.05.2010
Сообщений: 1,109
25.05.2010, 21:05 #3
C++
1
2
3
4
5
#include <windows.h>
............
gets(str);
OemToCharA(str,str);
cout<<str;
так работает
0
Sergey_O
5 / 5 / 1
Регистрация: 09.12.2009
Сообщений: 65
25.05.2010, 21:07  [ТС] #4
Цитата Сообщение от Iworb Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
#include <windows.h>
 
int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
return 0;
}
Правда на счет visual studio - не уверен, сработает ли, но под Dev-cpp пашет
Теперь даже когда пишешь русскими символами в консоли, они отображаются криво.
Хотя раньше от этого спасала setlocale(LC_ALL,"Russian");, сейчас как будто она просто не работает.
0
Crudelis
Шаровик затейник
674 / 416 / 13
Регистрация: 06.05.2010
Сообщений: 1,109
25.05.2010, 21:09 #5
C++
1
setlocale(LC_CTYPE,"Rus");
у меня работает
1
Iworb
анимешник++
93 / 60 / 2
Регистрация: 03.11.2009
Сообщений: 413
25.05.2010, 21:12 #6
Цитата Сообщение от Sergey_O Посмотреть сообщение
Теперь даже когда пишешь русскими символами в консоли, они отображаются криво.
Хотя раньше от этого спасала setlocale(LC_ALL,"Russian");, сейчас как будто она просто не работает.
в свойствах консоли выбери не точечный шрифт, а какой-либо другой

Добавлено через 46 секунд
к примеру Lucida Console
1
Sergey_O
5 / 5 / 1
Регистрация: 09.12.2009
Сообщений: 65
25.05.2010, 21:16  [ТС] #7
Цитата Сообщение от Iworb Посмотреть сообщение
в свойствах консоли выбери не точечный шрифт, а какой-либо другой

Добавлено через 46 секунд
к примеру Lucida Console
Можно чуток подробнее, как это сделать.
0
Iworb
анимешник++
93 / 60 / 2
Регистрация: 03.11.2009
Сообщений: 413
25.05.2010, 21:20 #8
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
вызываешь свою программку с крякозябрами - появляется консоль. Клацаешь вверху (рядом с иминем, или где там еще) правой кнопкой, выбираешь "Свойства". На второй вкладке шрифты - всего их 3: точечный, тот что я сказал и еще один. Ставишь любой неточечный шрифт, его размер и жмешь "Ок".
3
Crudelis
Шаровик затейник
674 / 416 / 13
Регистрация: 06.05.2010
Сообщений: 1,109
25.05.2010, 21:29 #9
зачем такие муки....

для вывода русских букв в консоль:
setlocale(LC_CTYPE,"Rus");

для ввода русских букв с консоли:
OemToCharA
1
Sergey_O
5 / 5 / 1
Регистрация: 09.12.2009
Сообщений: 65
25.05.2010, 21:32  [ТС] #10
Цитата Сообщение от Iworb Посмотреть сообщение
вызываешь свою программку с крякозябрами - появляется консоль. Клацаешь вверху (рядом с иминем, или где там еще) правой кнопкой, выбираешь "Свойства". На второй вкладке шрифты - всего их 3: точечный, тот что я сказал и еще один. Ставишь любой неточечный шрифт, его размер и жмешь "Ок".
Спасибо огромное Iworb и Crudelis за оперативную помощь.
0
Iworb
анимешник++
93 / 60 / 2
Регистрация: 03.11.2009
Сообщений: 413
25.05.2010, 21:32 #11
какие тут муки? Это делает тоже самое, но только меняет таблицу ascii для всех потоков - как для ввода/вывода для консоли, так и для файла.
1
Mark_26
0 / 0 / 0
Регистрация: 16.06.2012
Сообщений: 20
01.08.2012, 22:25 #12
Я бы тебе посоветовал, если пишешь консольные программы, используй текстовый редактор, где можно сменить кодировку (я использую Far Manager, F8 нажал и всё), а для компиляции используй командную строку Visual Studio с командой: cl исходный_файл.
0
Desmut
0 / 0 / 0
Регистрация: 20.01.2014
Сообщений: 5
21.01.2014, 18:29 #13
Можно так, setlocale(0,"");
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.01.2014, 18:29
Привет! Вот еще темы с ответами:

Украинские шрифты в консоле - C++
Тема аналог Русские шрифты в консоле Токо что делать если мне надо Укр. setlocale (LC_ALL, &quot;&quot;); решает проблему с Рус. шрифтом но вот...

Не отображаются шрифты комментария на русском - C++
собственно вопрос в названии темы.

Русские буквы - C++
Суть такая: надо записать в файл название модуля. Для модулей с английским названием и путём до них он пишет нормально, а на русском...

Русские символы - C++
Написал программу. Компилю из под cygwin g++. Ругается: 4.cpp:27:18: предупреждение: многознаковая символьная константа if((str...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
21.01.2014, 18:29
Ответ Создать тему
Опции темы

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