![]() |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Консольное приложение
Хотя эта книга посвящена программированию в Windows, нельзя обойти вниманием так называемые консольные приложения. Консольное приложение — это приложение, которое для взаимодействия с пользователем не использует графический интерфейс. Устройством, обеспечивающим взаимодействие с пользователем, является консоль — клавиатура и монитор, работающий в режиме отображения символьной информации (буквы, цифры и специальные знаки). В операционной системе консольное приложение работает в окне командной строки. Консольные приложения удобны как иллюстрации при рассмотрении общих вопросов программирования, когда надо сосредоточиться на сути проблемы, а также как небольшие утилиты "для внутреннего потребления". Перед тем как приступить к созданию консольного приложения, рассмотрим функции, обеспечивающие вывод на экран и ввод с клавиатуры. Наиболее универсальными функциями, обеспечивающими вывод и ввод информации в консольных приложениях, являются функции printf и scanf. Для того чтобы программа могла их использовать, в начало программы надо включить директиву #include <stdio.h>. Функция printf
Следует обратить внимание на то, что в качестве параметра функции textcolor можно использовать символьные константы со значением от О до 15, а в качестве параметра функции textbackground — только от 0 до 7. При выводе на экран весьма полезна функция cirscr, которая очищает экран, закрашивая его цветом фона, установленным функцией textbackground. Функции textcolor, textbackground, cirscr и приведенные выше константы объявлены в файле conio.h, поэтому, чтобы они были доступны, в текст Программы нужно включить директиву #include <conio.h>. Функция scanf Наиболее универсальной функцией, которая позволяет ввести данные с клавиатуры, является функция scanf. В общем виде инструкция вызова функции scanf для ввода значения одной переменной выглядит так: где: scanf("%i", Skol); вводит целое число, а инструкция вводит целое и дробное. При вызове функции scanf происходит следующее. Программа приостанавливает работу и ждет, пока пользователь наберет на клавиатуре строку символов и нажмет клавишу <Enter>. До нажатия <Enter> можно редактировать вводимую строку (например, нажав клавишу <Back Space> можно удалить последний введенный символ). После нажатия клавиши <Enter> функция scanf преобразует введенную строку в данные и записывает их в переменную, адрес которой указан. Преобразование выполняется в соответствии со спецификатором формата. Например, в результате выполнения инструкции scanf ("%f", scena) и набора на клавиатуре строки 25.99 значение переменной сеnа будет равно 25.99. Следует обратить внимание, что при использовании функции scanf наиболее частой ошибкой, причем не обнаруживаемой компилятором, является отсутствие символа & перед именем переменной. Если введенная пользователем строка не соответствует типу ожидаемых данных — например, программа ждет ввода целого числа, а пользователь ввел дробное, — то функция scanf обрабатывает только ту часть введенной строки, которая может быть преобразована в требуемые данные. Например, в программе для ввода данных о стоимости покупки используется инструкция scanf("%i%f", &kol, scena), которая предполагает, что пользователь введет в одной строке сначала количество предметов, а затем цену предмета. Если во время работы программы вместо строки 3 24.99 (три предмета по 24.99) ввести строку 24.99 3, то значение переменной koi будет равно 24, а переменной сеnа — 99. Консольное приложение создается следующим образом. Сначала нужно из меню File выбрать команду New | Other Application и на вкладке New появившегося диалогового окна New Items щелкнуть на значке Console Wizard ( 1). В результате этих действий на экране появится окно Console Wizard ( 2). В этом окне можно выбрать язык программирования и указать, будет ли использоваться та или иная библиотека. После того как будут заданы параметры создаваемого консольного приложения, надо щелкнуть на кнопке ОК. В результате C++ Builder создаст проект консольного .приложения и на экране появится окно редактора кода, в котором находится шаблон консольного приложения — функция main ( 3). Начинается консольное приложение директивой #pragma hdrstop, которая запрещает выполнение предварительной компиляции подключаемых файлов. После этой директивы надо вставить директивы #inciude, обеспечивающие подключение необходимых библиотек (например, #include <stdio.h>). Директива #pragma argsused отключает предупреждение компилятора о том, что аргументы, указанные в заголовке функции, не используются. Следует обратить внимание на то, что консольное приложение разрабатывается в Windows, а выполняется как программа DOS. В DOS и Windows буквы русского алфавита имеют разные коды (в DOS используется кодировка ASCII, а в Windows — ANSI). Это приводит к тому, что консольное приложение вместо сообщений на русском языке выводит "абракадабру". Проблему вывода сообщений на русском языке консольными приложениями можно решить, разработав функцию перекодировки ANSI-строки в строку ASCII. Если эту функцию назвать rus, то инструкция вывода сообщения может выглядеть, например, так: В качестве примера консольного приложения в листинге 7.1 приведена программа "Угадай число", которая для вывода сообщений использует функцию RUS. Значение функции rus — строка символов в кодировке ASCII, соответствующая строке, полученной в качестве параметра. Листинг 7.1. Пример консольного приложения Компиляция консольного приложения выполняется обычным образом, т. е. выбором из меню Project команды Compile. После успешной компиляции программа может быть запущена выбором из меню Run команды Run. При запуске консольного приложения на экране появляется стандартное окно командной строки. На 4 приведен вид окна командной строки, в котором работает консольное приложение, созданное в C++ Builder. Процесс сохранения проекта консольного приложения стандартный. В результате выбора из меню File команды Save Project на экране сначала появляется окно Save Project, в котором нужно ввести имя проекта, а затем — окно Save Utit, в котором надо задать имя модуля. Получить доступ к модулю консольного приложения (тексту программы) для того, чтобы внести изменения в программу, несколько сложнее. Сначала, выбрав в меню File команду Open Project, нужно открыть файл проекта. Затем надо открыть окно Project Manager (команда View | Project Manager), раскрыть список файлов, выбрать срр-файл и из контекстного меню выбрать команду Open (или сделать двойной щелчок на имени срр-файла) ( 5).
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
С вопросами и предложениями можно обращаться по nicivas@bk.ru. 2013 г. |