• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Русский текст в проге.

  • Автор темы Sermak
  • Дата начала
Статус
Закрыто для дальнейших ответов.
S

Sermak

Подскажите, пожалуйста, как сделать, чтобы программа на Borland C++ 5.1 выводила русские символы. Например инструкция cout<<"русский текст"; ни фига не выводит этот самый текст.
 
6

62316e

Для начяла тему делать надо там где надо.
 
S

Sermak

Для: 62316e
Ну а где конец то? Подсказал бы лучше. Не долго же, если знаешь
 
C

CyCaHuH

Попробуй прописать следующее:
setlocale(LC_ALL,"russian_russia.866"); //замена ASCII на юникод в сообщениях
wcout << L "текст на русском"; //вывод теперь надо будет оформлять так.

Это тестировалось под MS VS.NET '03, по идее должно идти и под Борлондом - попробуй.
 
6

62316e

Для: 62316e
Ну а где конец то? Подсказал бы лучше. Не долго же, если знаешь
Конец в гробу:angry: а начяло в RTFM.
Код:
BOOL CharToOem(LPCTSTR lpszSrc, LPSTR lpszDst);

Мистер может вам ищьо примерчик кинуть? :rolleyes:
 
S

Sermak

Спасибо. CharToOem работает, а вот с setlocale() проблема, компилятор не идентифицирует wcout (я подключил "locale.h" "include.h" "dos.h" может еще какой файл нужно?
 
S

Sermak

Для: Kmet
Я <iostream.h> тоже разумеется подключал, он все равно не работает. Можа там еще чего вводить надо?
 
C

CyCaHuH

Да нет, тут ничего прописывать больше не надо, т.к. wcout относится к iostream (как я понял из документации - приставка "w" означает wide, т.е. просто расширяет поток вывода).
Походу это не общая для всех компиляторов функция... Как я писал выше, тестил я ее под VS.NET, поэтому она запросто может не работать под борландом... Кстати, есть еще один вариант вывода кириллицы: Console::WriteLine("текст по русски"); Но он, по-моему, устарел...
 

Kmet

Well-known member
25.05.2006
904
8
BIT
0
wcout относится к iostream (как я понял из документации - приставка "w" означает wide, т.е. просто расширяет поток вывода).

Не понял. Что, куда расширяет?

Код:
typedef basic_ostream<wchar_t, char_traits<wchar_t> > wostream;
extern wostream wcout;

Вообще-то поддержка UNICODE определяется стандартом(самого стандарта под рукой не оказалось, но почему-то я в этом уверен, да и мсдн wcout описан не как Microsoft Specified). Так что и борланд должен определять этот поток. Хотя может 5.1 больно древний компилятор или это очередной ляп борланда.
 
C

CyCaHuH

Цитата из документации к VS 2005:
The object controls insertions to the standard output as a wide stream.
Насколько я понимаю это и есть расширение канала. Под этим подразумевается ввод/вывод не ASCII, а Unicode'a, в котором присутствует нормальное отображение русского. Если что не так, просьба поправить меня.
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!