• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

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

  • Автор темы 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, в котором присутствует нормальное отображение русского. Если что не так, просьба поправить меня.
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

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