63 / 35 / 13
Регистрация: 21.10.2010
Сообщений: 538
1

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

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

Author24 — интернет-сервис помощи студентам
Здравствуйте, у меня Windows Xp sp 3, не подскажите кодировку вывода на консоль русского текста, текст выводит системное приложение rasdial.exe, которое используется для подключение интернета
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.07.2011, 20:42
Ответы с готовыми решениями:

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

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

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

Кодировка ввода и вывода
В программу нужно ввести данные на русском языке, потом вывести #include "stdafx.h" using...

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/refer... setlocale/
Миниатюры
Кодировка вывода в консоль  
0
Каратель
Эксперт С++
6609 / 4028 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
31.07.2011, 11:32 3
2-й способ применим для Си
какой же это Си?сдесь windows.h нужен, а не stdio.h
0
63 / 35 / 13
Регистрация: 21.10.2010
Сообщений: 538
31.07.2011, 11:43  [ТС] 4
Да мне вообще немножко наоборот надо - у меня прога на Qt написана, я в ней запускаю процесс rasdial.exe с аргументами и пытаюсь найти кодировку чтобы расшифровать что процесс вывел
0
Brainsbreaker
899 / 374 / 54
Регистрация: 01.02.2011
Сообщений: 1,608
31.07.2011, 22:03 5
Запускай следом cmd.exe и в нем пребирай кодировку, через chcp.
0
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
01.08.2011, 01:32 6
Кстати, что касается шрифта Lucida Console рекомендую залезть в реестр и поменять там что-то, какой-то ключ. Тогда у всякого создаваемого консольного окна будет такой шрифт.

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

Цитата Сообщение от hepr Посмотреть сообщение
у меня прога на Qt написана
Вообще-то лучше бы кодировкой в самой программе заморочиться. В Qt для этого специальный метод tr предусмотрен, документацию почитайте...
0
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
01.08.2011, 15:28 8
easybudda, без ёрничанья
Ели ты галку поставишь, то максимум, чего ты добьёшься, это что с таким шрифтом будут запускаться окна С ТАКИМ ЖЕ ИМЕНЕМ.
Но никак не все окна в системе. А поправишь реестр- будут все.
У меня каждый мало-мальский отдельный проект начинается в новой папке и имя у него уникальное. Ток что вот.
0
01.08.2011, 15:28
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.08.2011, 15:28
Помогаю со студенческими работами здесь

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

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

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

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru