Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.79/19: Рейтинг темы: голосов - 19, средняя оценка - 4.79
 Аватар для hepr
63 / 35 / 13
Регистрация: 21.10.2010
Сообщений: 538

Кодировка вывода в консоль

30.07.2011, 20:42. Показов 3935. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, у меня Windows Xp sp 3, не подскажите кодировку вывода на консоль русского текста, текст выводит системное приложение rasdial.exe, которое используется для подключение интернета
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.07.2011, 20:42
Ответы с готовыми решениями:

Кодировка, CodeBlocks, консоль
Здравствуйте. Установил нову версию Codeblocks 17.12. Проблема вот в чем: Когда я копирую символы в консоль, то получаю вместо...

Кодировка символов при выводе в консоль.
Код #include <iostream> #include <fstream> #include <string> #include <sstream> #include...

Кодировка: вывод данных на русском языке в консоль
Здравствуйте, уважаемые форумчане! Есть проблема с выводом данных в консоль. Нужно вывести данные на русском языке в таблице. Символы для...

7
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
31.07.2011, 11:24
Руссифицировать консоль можно по разному
1-й способ - для С++ и ввода с помощью iostream.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream.h>
ostream& operator<<(ostream &stream,char* s){
    for(char* ps=s; *ps; ps++){
        if(*ps=='ё')
            stream<<char(241);
        else if(*ps=='Ё')
            stream<<char(240);
        else if(*ps>=-64 && *ps<=-17)           
            stream<<char(*ps+64+128);
        else if(*ps<0)
            stream<<char(*ps+64+176);
        else
            stream<<*ps;
    }
    return stream;
}
2-й способ применим для Си
C++
1
2
3
4
5
6
7
#include <stdio.h>
int main()
{
  SetConsoleCP(1251);
  SetConsoleOutputCP(1251);
  //
}
Для успешной работы необходимо выставить шрифт консоли на Lusinda Console (скриншот ниже)
3 -й
Использовать функцию CharToOem((LPCTSTR)s_input,s_output);
Вот прототип простенькой функции по печати русского текста
C++
1
2
3
4
5
6
7
8
9
10
void ru_printf(const char * fmt, const char * str)
{
    char chBuf[MAX_PATH];
    if(0 < strlen(str))
    {
        sprintf(chBuf,str);
        CharToOem((LPCTSTR)chBuf,chBuf);
        printf(fmt,chBuf);
    }
}
4 -й использовать функцию setlocale, подробней о ней сдесь http://www.cplusplus.com/refer... setlocale/
Миниатюры
Кодировка вывода в консоль  
0
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
31.07.2011, 11:32
2-й способ применим для Си
какой же это Си?сдесь windows.h нужен, а не stdio.h
0
 Аватар для hepr
63 / 35 / 13
Регистрация: 21.10.2010
Сообщений: 538
31.07.2011, 11:43  [ТС]
Да мне вообще немножко наоборот надо - у меня прога на Qt написана, я в ней запускаю процесс rasdial.exe с аргументами и пытаюсь найти кодировку чтобы расшифровать что процесс вывел
0
Brainsbreaker
 Аватар для Digit@ll
899 / 374 / 54
Регистрация: 01.02.2011
Сообщений: 1,608
31.07.2011, 22:03
Запускай следом cmd.exe и в нем пребирай кодировку, через chcp.
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
01.08.2011, 01:32
Кстати, что касается шрифта Lucida Console рекомендую залезть в реестр и поменять там что-то, какой-то ключ. Тогда у всякого создаваемого консольного окна будет такой шрифт.

Подробности я подзабыл. Ищутся в инете на раз.
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,977
01.08.2011, 05:54
Цитата Сообщение от kravam Посмотреть сообщение
рекомендую залезть в реестр и поменять там что-то...
... А лучше удалить всё к чёртовой бабушке
На самом деле всё проще: когда в настройках шрифт/размер/цвет меняешь, там галка есть - сохранить настройки для текущего окна, или всегда cmd с такими настройками запускать.

Цитата Сообщение от hepr Посмотреть сообщение
у меня прога на Qt написана
Вообще-то лучше бы кодировкой в самой программе заморочиться. В Qt для этого специальный метод tr предусмотрен, документацию почитайте...
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
01.08.2011, 15:28
easybudda, без ёрничанья
Ели ты галку поставишь, то максимум, чего ты добьёшься, это что с таким шрифтом будут запускаться окна С ТАКИМ ЖЕ ИМЕНЕМ.
Но никак не все окна в системе. А поправишь реестр- будут все.
У меня каждый мало-мальский отдельный проект начинается в новой папке и имя у него уникальное. Ток что вот.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.08.2011, 15:28
Помогаю со студенческими работами здесь

Кодировка ввода и вывода
В программу нужно ввести данные на русском языке, потом вывести #include &quot;stdafx.h&quot; using namespace std; const int num =...

Нет вывода в консоль
Доброго времени суток! В середине дня столкнулась со следующей проблемой. При сборке программы в Visual Studio 2008 все прекрасно и без...

Ошибка вывода на консоль
В Debug выводит адрес почему-то. В release же все нормально. Почему так и как это исправить? #include &lt;iostream&gt; #include...

Кодировка для вывода в файл
Запрашиваю путь, туда записываю данные. char path=set_path(); p = vvesti(path); set_path.cpp #include&lt;iostream&gt; ...

Дублирование вывода в консоль CLion
Доброго времени суток друзья. Установил вчера IDE CLion. Но он почему-то дублирует вывод значений переменных.. Помогите убрать это...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru