Исходники.Ру - Программирование
Исходники
Статьи
Книги и учебники
Скрипты
Новости RSS
Магазин программиста

Главная » Статьи по программированию » C,С++ и C# - Все статьи »

Обсудить на форуме Обсудить на форуме

По поводу использования русских букв в C/C++

Только что, то есть 1 января 2002 года примерно в 18 час 48 минут я получил второе письмо от того же автора на затронутую мною на уроке 9 тему. Оба письма написаны Mike Koshelev'ым. Я опробовал рекомендации Mike Koshelev'a. Помещаю здесь результаты этого опробования. Ниже на рисунках Вы можете сами все увидеть, как оно будет, если придерживаться методики Mike. Сегодня я хочу дать Вам материалы опробования, провести анализа и сделать некоторые выводы по результатам этого анализа. Прежде всего познакомимся с упомянутыми письмами.

Вот первое письмо от 31 декабря 2001 года.

Письмо было получено от Mike Koshelev'a так кстати. Большое ему за это СПАСИБО !!!


Hello Юрий,

Русские буквы в окне редактора фиксятся очень просто - Options->Environment->Editor->Display поле Font заменить на Courier New Cyr. Удобно писать комментарии на русском. А вот как сделать консольный вывод в нормальной кодировке и чтобы в редакторе наблюдать нормальные сообщения я не знаю. Поэтому комментарии пишу на русском а сообщения на английском.

Asta la vista, Mike

Вызовем вначале программу Borland C/C++ 5.2. Далее войдем в раздел "Option" во второй строке программы - в строке меню команд. Откроется ниспадающее меню (окно) программы. Выберем в нем строку "Environment" и щелкнем по ней дважды левой кнопкой манипулятора "мышь". Все вышесказанное показано ниже на рисунке.

Перед нами откроется окно "Environment Option". Выберем в левой части окна строку "Editor", помеченную плюсом, и щелкнем по ней дважды левой кнопкой мыши. Плюсик заменится на минус и перед нами предстанет детальное содержание строки "Editor".

Выберем далее в детализированом списке, полученном из строки "Editor", строку "Display" и щелкнем по ней, как прежде, левой кнопкой мыши. Получим окно, в котором будем переустанавливать наименование шрифта со знаками кириллицы. Ниже на рисунке показано это окно.

В правой части окна выберем FONT и, щелкнув по треугольнику, обращенному острием вниз, найдем наименование переустанавливаемого нами шрифта Courier New Cyr и переустановим новый шрифт.



Это позволит нам иметь русские буквы в двойных кавычках в протоколе трансляции ( в тексте нашей программы в окне компилятора Borland C/C++ 5.2).

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



Русские буквы желательно иметь на всех этапах работы в С/C++. Однако, как показывает проверка, методика Mike этого не обеспечивает. По моему разумению самое главное, чтобы они, то есть русские буквы, присутствовали на этапе решения задачи. Но они или выдаются в протоколе трансляции, и тогда их нет в самом решении, или их нет в протоколе трансляции, но зато они есть в распечатке ( или вернее в окне решения задачи ), что важнее, как мне кажется, не так ли?

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

Так что методика руссификации, которой пользуется Mike, вполне приемлема, но она, к сожалению, не дает все же полной возможности использовать русские буквы на всех этапах работы в языке С/C++. Аналогично и та методика, о которой рассказывалось на предыдущем уроке 9, тоже не дает русских букв на всех этапах работы с транслятором. Но самое главное, что она дает их в решении задачи. А это куда важнее. То есть это самое главное для тех пользователей, которые работают с русским алфавитом, как, например, мы - входящие в постсоветское пространство СНГ.

Итак, подведем итог нашим исследованиям. Как следует из проведенного эксперимента, согласно полученным от Mike рекомендациям, в самом решении нет русских букв... Пожалуйста, проделайте все это сами, и тогда Вы еще лучше поймете наши выводы. Если кто-то из учеников знает, как сделать полную руссификацию транслятора Borland C/C++ 5.2, то есть чтобы одновременно и протокол трансляции, и решение задачи после трансляции отображались русскими буквами, прошу поделиться этими знаниями со всеми слушателями и читателями моих уроков. Пока же предложенное Mike решение пригодно и может быть использовано, но оно все же не решает проблему русских букв на всех этапах работы в языке С/C++. Так что мои рекомендации остаются, как я полагаю, в силе.

Ниже я привожу второе письмо Mike Koshelev'a, в котором он разъясняет свою позицию и приводит свои аргументы "за" и "против" по данному вопросу.


Hello Юрий!

Tuesday, January 01, 2002, 6:48:11 PM.

Как я и писал данный способ работает только в окне редактора кода, т.е. можно писать комментарии на русском языке. Но вывод в консольное окно происходит похоже в другой кодировке, и я не знаю как это пофиксить. Поэтому комментарии я пишу на русскома, а выводимые сообщения на английском, благо я хорошо знаком с этим языком. :) На сопутствующем скрин-шоте видно окно редактора с комментариями. Мне просто совершенно не нравится идея готовить текст в отдельном редакторе, там ведь нет выделения синтаксиса и вообще...

Asta la vista, Mike

Рекомендуемая литература:

  1. Нейбауэр Алан. Моя первая программа на Си/Си++. Перевод с англ. - СПб.: Питер, 1996. - 368 с.: ил.
  2. Березин Б.И., Березин С.Б. Начальный курс С и С++. - М,: ДИАЛОГ_МИФИ, 1996. - 288 с.
  3. Подбельский В.В., Фомин С.С. Программирование на языке Си: Учеб. пособие. - М.: Финансы и статистика, 1998. - 600 с.: ил.
  4. Джонс Р., Стюарт Я. Программируем на Си/Пер. с англ. и предисл. М.Л. Сальникова, Ю.В. Сальниковой. - М.: Компьютер, ЮНИТИ, 1994. - 236 с.: ил.
  5. Скляров В.А. Программирование на языках Си и Си++: Практ. пособие. - М.: Высш. шк., 1996. -240 с.: ил.
  6. Пашенков В.В. Язык программирования Си. - М.: Центр НТТМ "Алгоритм", 1990. - 76 с.
  7. УинерР Р. Язык Турбо Си: Пер. с англ. -М.: Мир, 1991. - 384 с.: ил.

Может пригодится:


Автор: http://www.cppwmeste.r2.ru/
Прочитано: 8129
Рейтинг:
Оценить: 1 2 3 4 5

Комментарии: (2)

Прислал: lamo
Понимаю, что пост был сделан давно, тем не менее, хочу прокоментировать, мож кому пригодится. В библиотеке User32.lib есть функция CharToOem. Ее я и использую в случае, если мне нужно вывести русский текст на консоль.Так что RTMF CharToOem. Оговорюсь

Прислал: Сергей
Интересный вопрос. Я для вывода русского текста в консоли использую шрифт PROMT OEM Courier Cyr. Правда приходится помучиться с вводом русских букв - расположение не как на клавиатуре ;)

Добавить комментарий
Ваше имя*:
Ваш email:
URL Вашего сайта:
Ваш комментарий*:
Код безопастности*:

Рассылка новостей
Рейтинги
© 2007, Программирование Исходники.Ру