On-Line Библиотека www.XServer.ru - учебники, книги, статьи, документация, нормативная литература.
       Главная         В избранное         Контакты        Карта сайта   
    Навигация XServer.ru






 

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

Юрий Климант

1. Новогоднее приветствие и поздравления

   Добрый день, мои дорогие ученики! Вот уже и наступил Новый 2002 год.
Если до Нового года мы все спешим поздравить друг друга с Наступающим Новым годом, то с наступлением Нового года мы должны поздравлять друг друга уже с Наступившим Новым 2002 годом. Так я и сделаю. Я от всего сердца поздравляю всех Вас, мои дорогие ученики, именно с Наступившим Новым 2002 годом !!! Конечно же я прежде всего желаю всем больших успехов в освоении языка программирования C/C++, так как он нас всех объединяет и вслед за этим я желаю всем Вам здоровья, счастья и всяческих успехов в Новом 2002 году.
   В этот первый день нового 2002 года я пишу свой 10-й по счету урок. Это символично. Говорят, что как начнешь новый год, так и проведешь весь год. Поэтому, если верить этой примете, я весь год буду писать уроки по программированию на языке C/C++. Тогда и Вы весь начавшимйся новый 2002 год тоже будете вместе со мною изучать язык C/C++. Таковы народные приметы... Надеюсь, что в первый день Нового года, особенно после просмотра нового фильма про вечера на хуторе Диканьки, такой юмор не только допустим и понятен, но просто даже необходим для того, чтобы начать писать в праздничный день новый урок по программированию, а Вам для того, чтобы начать заниматься языком C/C++.
   Итак, приступим к проведению урока 10 и рассмотрим сегодня на уроке вопрос использования русских букв в протоколе трансляции и в окне результатов решения задачи на компьютере. На прошлом уроке 9 мы только слегка затронули эту тему. И вот 31 декабря 2001 года, то есть в канун Нового года, ко мне пришло новое письмо, посвященное этому вопросу. Не могу не упомянуть о нем и не поместить его в материалы урока 10, так как оно освещает несколько другой подход, которого придерживается автор этого письма, относительно использования букв русского алфавита в программе на языке C/C++.

2. Материалы по использованию букв русского алфавита в языке 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






Литература по C & C++