Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Русский текст в проге.
Форум программистов > Системное программирование > C, С++ и С Builder > C и С++ FAQ
Sermak
Подскажите, пожалуйста, как сделать, чтобы программа на Borland C++ 5.1 выводила русские символы. Например инструкция cout<<"русский текст"; ни фига не выводит этот самый текст.
62316e
Для начяла тему делать надо там где надо.
Sermak
Для: 62316e
Ну а где конец то? Подсказал бы лучше. Не долго же, если знаешь
CyCaHuH
Попробуй прописать следующее:
setlocale(LC_ALL,"russian_russia.866"); //замена ASCII на юникод в сообщениях
wcout << L "текст на русском"; //вывод теперь надо будет оформлять так.

Это тестировалось под MS VS.NET '03, по идее должно идти и под Борлондом - попробуй.
62316e
Цитата
Для: 62316e
Ну а где конец то? Подсказал бы лучше. Не долго же, если знаешь
Конец в гробуsmile.gif а начяло в RTFM.
BOOL CharToOem(LPCTSTR lpszSrc, LPSTR lpszDst);


Мистер может вам ищьо примерчик кинуть? huh.gif
Sermak
Спасибо. CharToOem работает, а вот с setlocale() проблема, компилятор не идентифицирует wcout (я подключил "locale.h" "include.h" "dos.h" может еще какой файл нужно?
Kmet
Header: <iostream>
Sermak
Для: Kmet
Я <iostream.h> тоже разумеется подключал, он все равно не работает. Можа там еще чего вводить надо?
CyCaHuH
Да нет, тут ничего прописывать больше не надо, т.к. wcout относится к iostream (как я понял из документации - приставка "w" означает wide, т.е. просто расширяет поток вывода).
Походу это не общая для всех компиляторов функция... Как я писал выше, тестил я ее под VS.NET, поэтому она запросто может не работать под борландом... Кстати, есть еще один вариант вывода кириллицы: Console::WriteLine("текст по русски"); Но он, по-моему, устарел...
Kmet
Цитата
wcout относится к iostream (как я понял из документации - приставка "w" означает wide, т.е. просто расширяет поток вывода).


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

typedef basic_ostream<wchar_t, char_traits<wchar_t> > wostream;
extern wostream wcout;


Вообще-то поддержка UNICODE определяется стандартом(самого стандарта под рукой не оказалось, но почему-то я в этом уверен, да и мсдн wcout описан не как Microsoft Specified). Так что и борланд должен определять этот поток. Хотя может 5.1 больно древний компилятор или это очередной ляп борланда.
CyCaHuH
Цитата из документации к VS 2005:
Цитата
The object controls insertions to the standard output as a wide stream.
Насколько я понимаю это и есть расширение канала. Под этим подразумевается ввод/вывод не ASCII, а Unicode'a, в котором присутствует нормальное отображение русского. Если что не так, просьба поправить меня.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2008 IPS, Inc.