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

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

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

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

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

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

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

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

Сразу скажу, что функция:
C++
1
2
3
4
void RussianLang(void) // Поддержка русского шрифта
{
setlocale(LC_ALL,"Russian");
}
присутствует, но не помогает конкретно с занесением русских букв(чтение запись).
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Iworb
анимешник++
93 / 60 / 2
Регистрация: 03.11.2009
Сообщений: 413
25.05.2010, 21:01     Русские шрифты в c++ #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 пашет
Crudelis
Шаровик затейник
669 / 411 / 13
Регистрация: 06.05.2010
Сообщений: 1,109
25.05.2010, 21:05     Русские шрифты в c++ #3
C++
1
2
3
4
5
#include <windows.h>
............
gets(str);
OemToCharA(str,str);
cout<<str;
так работает
Sergey_O
5 / 5 / 1
Регистрация: 09.12.2009
Сообщений: 65
25.05.2010, 21:07  [ТС]     Русские шрифты в c++ #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");, сейчас как будто она просто не работает.
Crudelis
Шаровик затейник
669 / 411 / 13
Регистрация: 06.05.2010
Сообщений: 1,109
25.05.2010, 21:09     Русские шрифты в c++ #5
C++
1
setlocale(LC_CTYPE,"Rus");
у меня работает
Iworb
анимешник++
93 / 60 / 2
Регистрация: 03.11.2009
Сообщений: 413
25.05.2010, 21:12     Русские шрифты в c++ #6
Цитата Сообщение от Sergey_O Посмотреть сообщение
Теперь даже когда пишешь русскими символами в консоли, они отображаются криво.
Хотя раньше от этого спасала setlocale(LC_ALL,"Russian");, сейчас как будто она просто не работает.
в свойствах консоли выбери не точечный шрифт, а какой-либо другой

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

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

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

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

C++ Значения переменных - русские шрифты
C++ Не отображаются шрифты комментария на русском
C++ Русские буквы в C++
Как заставить консоль понимать русский язык? (русские шрифты в консоли) C++
Чтения из файла Русские шрифты C++

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

Или воспользуйтесь поиском по форуму:
Desmut
0 / 0 / 0
Регистрация: 20.01.2014
Сообщений: 5
21.01.2014, 18:29     Русские шрифты в c++ #13
Можно так, setlocale(0,"");
Yandex
Объявления
21.01.2014, 18:29     Русские шрифты в c++
Ответ Создать тему
Опции темы

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