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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.83
hepr
61 / 33 / 5
Регистрация: 21.10.2010
Сообщений: 538
#1

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

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

Здравствуйте, у меня Windows Xp sp 3, не подскажите кодировку вывода на консоль русского текста, текст выводит системное приложение rasdial.exe, которое используется для подключение интернета
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.07.2011, 20:42
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Кодировка вывода в консоль (C++):

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

Ошибка вывода на консоль - C++
В Debug выводит адрес почему-то. В release же все нормально. Почему так и как это исправить? #include <iostream> #include <string> ...

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

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

Поправить строки вывода в консоль - C++
Помогите пожалуйста поправить строки для корректного вывода в консоль. Знаю шарп, там все проще, а здесь просто дико запуталась Оригинал...

Преобразование цикла для вывода на консоль - C++
Подскажите пожалуйста, как сделать вывод на консоль задаваемого значения с клавиатуры, чтобы мы вводили с клавиатуры, к примеру "name" и...

7
-=ЮрА=-
Заблокирован
Автор FAQ
31.07.2011, 11:24 #2
Руссифицировать консоль можно по разному
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/reference/clibrary/clocale/setlocale/
0
Миниатюры
Кодировка вывода в консоль  
Jupiter
Каратель
Эксперт С++
6561 / 3982 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
31.07.2011, 11:32 #3
2-й способ применим для Си
какой же это Си?сдесь windows.h нужен, а не stdio.h
0
hepr
61 / 33 / 5
Регистрация: 21.10.2010
Сообщений: 538
31.07.2011, 11:43  [ТС] #4
Да мне вообще немножко наоборот надо - у меня прога на Qt написана, я в ней запускаю процесс rasdial.exe с аргументами и пытаюсь найти кодировку чтобы расшифровать что процесс вывел
0
Digit@ll
Brainsbreaker
884 / 362 / 31
Регистрация: 01.02.2011
Сообщений: 1,586
31.07.2011, 22:03 #5
Запускай следом cmd.exe и в нем пребирай кодировку, через chcp.
0
kravam
быдлокодер
1703 / 890 / 45
Регистрация: 04.06.2008
Сообщений: 5,489
01.08.2011, 01:32 #6
Кстати, что касается шрифта Lucida Console рекомендую залезть в реестр и поменять там что-то, какой-то ключ. Тогда у всякого создаваемого консольного окна будет такой шрифт.

Подробности я подзабыл. Ищутся в инете на раз.
0
easybudda
Модератор
Эксперт CЭксперт С++
9698 / 5648 / 964
Регистрация: 25.07.2009
Сообщений: 10,863
01.08.2011, 05:54 #7
Цитата Сообщение от kravam Посмотреть сообщение
рекомендую залезть в реестр и поменять там что-то...
... А лучше удалить всё к чёртовой бабушке
На самом деле всё проще: когда в настройках шрифт/размер/цвет меняешь, там галка есть - сохранить настройки для текущего окна, или всегда cmd с такими настройками запускать.

Цитата Сообщение от hepr Посмотреть сообщение
у меня прога на Qt написана
Вообще-то лучше бы кодировкой в самой программе заморочиться. В Qt для этого специальный метод tr предусмотрен, документацию почитайте...
0
kravam
быдлокодер
1703 / 890 / 45
Регистрация: 04.06.2008
Сообщений: 5,489
01.08.2011, 15:28 #8
easybudda, без ёрничанья
Ели ты галку поставишь, то максимум, чего ты добьёшься, это что с таким шрифтом будут запускаться окна С ТАКИМ ЖЕ ИМЕНЕМ.
Но никак не все окна в системе. А поправишь реестр- будут все.
У меня каждый мало-мальский отдельный проект начинается в новой папке и имя у него уникальное. Ток что вот.
0
01.08.2011, 15:28
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.08.2011, 15:28
Привет! Вот еще темы с ответами:

Закрывается консоль сразу после вывода результата - C++
вот такая проблема, считает всё верно, но сразу после результата консоль закрывается, и помогите пожалуйста так сделать что б не можно было...

Не могу разобраться с чтением файла и последующего вывода в консоль - C++
У меня задание. Из файла Hello.txt вывести текст (конкретно &quot;Hello world!&quot;). Поиск по форуму привел меня к такому коду: #define...

Нужен подходящий символ кружка для вывода в консоль - C++
Нужен круг(Символ), чтоб работал в консольке c++.

Перегрузка оператора вывода на консоль для шаблонного класса - C++
Следующий код компилируется, но не линкуется: #include &lt;iostream&gt; using namespace std; template &lt;typename T&gt; class A { ...


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

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

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