Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.65/49: Рейтинг темы: голосов - 49, средняя оценка - 4.65
5 / 5 / 3
Регистрация: 09.12.2009
Сообщений: 65
1

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

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

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

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

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

Сразу скажу, что функция:
C++
1
2
3
4
void RussianLang(void) // Поддержка русского шрифта
{
setlocale(LC_ALL,"Russian");
}
присутствует, но не помогает конкретно с занесением русских букв(чтение запись).
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.05.2010, 20:47
Ответы с готовыми решениями:

Русские шрифты в консоли
всем привет. Я новичек, и у меня такой вопрос. Как написать сообщение с русскими буквами, чтоб...

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

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

Значения переменных - русские шрифты
Здравствуйте, такая проблема: Как сделать так чтобы если я создал string tmp =...

12
анимешник++
95 / 62 / 7
Регистрация: 03.11.2009
Сообщений: 426
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
Шаровик затейник
693 / 442 / 78
Регистрация: 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
5 / 5 / 3
Регистрация: 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
Шаровик затейник
693 / 442 / 78
Регистрация: 06.05.2010
Сообщений: 1,109
25.05.2010, 21:09 5
C++
1
setlocale(LC_CTYPE,"Rus");
у меня работает
1
анимешник++
95 / 62 / 7
Регистрация: 03.11.2009
Сообщений: 426
25.05.2010, 21:12 6
Цитата Сообщение от Sergey_O Посмотреть сообщение
Теперь даже когда пишешь русскими символами в консоли, они отображаются криво.
Хотя раньше от этого спасала setlocale(LC_ALL,"Russian");, сейчас как будто она просто не работает.
в свойствах консоли выбери не точечный шрифт, а какой-либо другой

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

Добавлено через 46 секунд
к примеру Lucida Console
Можно чуток подробнее, как это сделать.
0
анимешник++
95 / 62 / 7
Регистрация: 03.11.2009
Сообщений: 426
25.05.2010, 21:20 8
Лучший ответ Сообщение было отмечено как решение

Решение

вызываешь свою программку с крякозябрами - появляется консоль. Клацаешь вверху (рядом с иминем, или где там еще) правой кнопкой, выбираешь "Свойства". На второй вкладке шрифты - всего их 3: точечный, тот что я сказал и еще один. Ставишь любой неточечный шрифт, его размер и жмешь "Ок".
3
Шаровик затейник
693 / 442 / 78
Регистрация: 06.05.2010
Сообщений: 1,109
25.05.2010, 21:29 9
зачем такие муки....

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

для ввода русских букв с консоли:
OemToCharA
1
5 / 5 / 3
Регистрация: 09.12.2009
Сообщений: 65
25.05.2010, 21:32  [ТС] 10
Цитата Сообщение от Iworb Посмотреть сообщение
вызываешь свою программку с крякозябрами - появляется консоль. Клацаешь вверху (рядом с иминем, или где там еще) правой кнопкой, выбираешь "Свойства". На второй вкладке шрифты - всего их 3: точечный, тот что я сказал и еще один. Ставишь любой неточечный шрифт, его размер и жмешь "Ок".
Спасибо огромное Iworb и Crudelis за оперативную помощь.
0
анимешник++
95 / 62 / 7
Регистрация: 03.11.2009
Сообщений: 426
25.05.2010, 21:32 11
какие тут муки? Это делает тоже самое, но только меняет таблицу ascii для всех потоков - как для ввода/вывода для консоли, так и для файла.
1
0 / 0 / 0
Регистрация: 16.06.2012
Сообщений: 20
01.08.2012, 22:25 12
Я бы тебе посоветовал, если пишешь консольные программы, используй текстовый редактор, где можно сменить кодировку (я использую Far Manager, F8 нажал и всё), а для компиляции используй командную строку Visual Studio с командой: cl исходный_файл.
0
0 / 0 / 0
Регистрация: 20.01.2014
Сообщений: 5
21.01.2014, 18:29 13
Можно так, setlocale(0,"");
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.01.2014, 18:29

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

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

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

Цвет шрифты строки
Здравствуйте! Как можно изменить цвет шрифта для отдельной строки/слова? Всю консоль...

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


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

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

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