Создание консольного приложения
Консольное приложение создается следующим образом. Сначала нужно из меню File выбрать команду
New | Other Application и на вкладке New появившегося диалогового окна
New Items щелкнуть на значке Console Wizard
(рис. 7.1). В результате этих действий на экране появится окно Console Wizard (рис. 7.2). В этом окне можно выбрать язык программирования и указать, будет ли использоваться та или иная библиотека. После того как будут заданы параметры создаваемого консольного приложения, надо щелкнуть на кнопке
ОК. В результате C++ Builder создаст проект консольного .приложения и на экране появится окно редактора кода, в котором находится шаблон консольного приложения — функция
main (рис. 7.3).
Рис. 7.1. Чтобы приступить к созданию консольного приложения, надо щелкнуть на значке Console Wizard
Рис. 7.2. В окне Console Wizard надо задать характеристики консольного приложение
Начинается консольное приложение директивой #pragma hdrstop, которая запрещает выполнение предварительной компиляции подключаемых файлов. После этой директивы надо вставить директивы #inciude, обеспечивающие подключение необходимых библиотек (например, #include <stdio.h>). Директива #pragma argsused отключает предупреждение компилятора о том, что аргументы, указанные в заголовке функции, не используются.
Рис. 7.3. Шаблон консольного приложения
Следует обратить внимание на то, что консольное приложение разрабатывается в Windows, а выполняется как программа DOS. В DOS и Windows буквы русского алфавита имеют разные коды (в DOS используется кодировка ASCII, а в Windows — ANSI). Это приводит к тому, что консольное приложение вместо сообщений на русском языке выводит "абракадабру".
Проблему вывода сообщений на русском языке консольными приложениями можно решить, разработав функцию перекодировки ANSI-строки в строку ASCII. Если эту функцию назвать rus, то инструкция вывода сообщения может выглядеть, например, так:
printf( rus("Скорость: %3.2f км/час"), v);
В качестве примера консольного приложения в листинге 7.1 приведена программа "Угадай число", которая для вывода сообщений использует функцию RUS. Значение функции rus — строка символов в кодировке ASCII, соответствующая строке, полученной в качестве параметра.
Листинг 7.1. Пример консольного приложения
#pragma hdrstop
#include <stdio.h>
#include <conio.h> // для доступа к getch()
#include <stdlib.h> // для доступа к srandf), rand()
linclude <time.h> // для доступа к time_t и time О
char* rus(char* st);
// преобразует ANSI-строку в строку ASCII tpragma argsused
int main(int argc, char* argv[])
(
int comp,
// число, "задуманное" компьютером igrok,
// вариант игрока n=0; // число попыток
// ГСЧ — генератор случайных чисел
time_t t; // текущее время (для инициализации ГСЧ)
srandf (unsigned)time(&t)); // инициализация ГСЧ
comp = rand() % 10 + 1;
puts( rus("ХпКомпыотер \"задумал\" число от 1 до 10."));
puts( rus("Вы должны его угадать за три попытки."));
do
{
printf("->");
scanf("%i", Sigrok);
n++; } while ( igrok != comp && n < 3);
if (igrok == comp)
printf( rus("ВЫ ВЫИГРАЛИ!"));
else {
puts( rus("Вы проиграли."));
printf( rus("Компьютер \"задумал\" число %d"), comp); }
printf( гиз("\Для завершения нажмите любую клавишу..."));
getch();
return 0; }
/*Функция rus преобразует ANSI-строку в строку ASCII
и может использоваться для вывода сообщений
на русском языке в консольных программах.
Пример использования:
printf( rus("Скорость: %3.2f км/час"), v);
printf( rus("У лукоморья дуб зеленый\п")); */
char* rus(char* st) {
unsigned char* p = st;
/* при объявлении символов как char русские буквы
кодируются отрицательными числами */ while ( *р)
<
if (*p >= 192) // здесь русская буква
if (*р <= 239) // Л,Б, ... Я,а,б, ... п
*р -= 64; else // p ... я
*р -= 16;
Р++; } return st;
}
Компиляция консольного приложения выполняется обычным образом, т. е. выбором из меню Project команды Compile.
После успешной компиляции программа может быть запущена выбором из меню Run команды Run. При запуске консольного приложения на экране появляется стандартное окно командной строки. На рис. 7.4 приведен вид окна командной строки, в котором работает консольное приложение, созданное в C++ Builder.
Процесс сохранения проекта консольного приложения стандартный. В результате выбора из меню File команды Save Project на экране сначала появляется окно Save Project, в котором нужно ввести имя проекта, а затем — окно Save Utit, в котором надо задать имя модуля.
Получить доступ к модулю консольного приложения (тексту программы) для того, чтобы внести изменения в программу, несколько сложнее. Сначала, выбрав в меню File команду Open Project, нужно открыть файл проекта. Затем надо открыть окно Project Manager (команда View | Project Manager), раскрыть список файлов, выбрать срр-файл и из контекстного меню выбрать команду Open (или сделать двойной щелчок на имени срр-файла) (рис. 7.5).
Рис. 7.4. Окно командной строки, в котором работает консольное приложение
Рис. 7.5. Чтобы внести изменения в программу, надо в окне Project Manager выбрать срр-файл и из контекстного меню выбрать команду Open