Создание консольного приложения
При создании проекта на вкладке Создание проекта необходимо выбрать нужный тип проекта (рис. 6). Далее в строке Имя необходимо задать имя проекта, при этом желательно использовать буквы английского алфавита, например, lab1, и проследить, чтобы расположение проекта указывало на нужный каталог. По умолчанию это будет папка «Мои документы\Visual Studio 2008\Projects», создаваемая системой при инсталляции MS VS 2008. Если требуется изменить месторасположение создаваемого проекта, можно воспользоваться кнопкой Обзор, которая, как в проводнике Windows, позволит выбрать необходимую папку. Если при этом требуется создать новую папку, желательно не пользоваться для этого средой, а сначала создать нужную папку в проводнике Windows и уже после этого указать на неё при выборе месторасположения проекта.
Рис. 6. Окно создания проекта
В появившемся после нажатия кнопки OK окне необходимо нажать кнопку Далее и перейти к Параметрам приложения (рис. 7). Здесь обязательно необходимо выбрать переключатель Консольное приложение и поставить галочку на Пустой проект. Далее следует нажать кнопку Готово.
Рис. 7. Настройка окна задания параметров приложения
После выполнения описанных выше действий внешний вид окна MS VS 2008 изменится. Теперь система имеет текущее решение, содержащее один проект. Все папки проекта пусты. Необходимо создать файл для работы с исходным кодом программы. Для этого необходимо установить курсор мыши на каталог Файлы исходного кода и вызвать контекстное меню. Далее в пункте Добавить из выпадающего списка выбрать Создать элемент (рис. 8). В появившемся окне из приведенного списка необходимо выбрать Файл С++(.срр).
Рис. 8. Создание файла исходного кода в пустом проекте
Если действовать по другому – через меню Файл→Создать→Файл… и выбрать из списка то же самое, то будет создан файл, не имеющий никакого отношения к проекту, поэтому дополнительно потребуется прикреплять его к проекту. Во-первых, необходимо сохранить этот файл и дать ему имя. Сохранение происходит при помощи меню Файл→Сохранить. Обратите внимание на имя этого файла, лучше использовать команду Сохранить как, для того чтобы была возможность не только изменить имя файла, но и отследить каталог, в котором он будет находится (желательно, чтобы каталог был каталогом проекта). Далее, вызвав контекстное меню на каталоге Файлы исходного кода в обозревателе решений, в меню Добавить из выпадающего списка необходимо выбрать пункт Существующий элемент. После этого необходимо также найти Файл С++(.срр) и, отметив его указателем мыши, нажать Добавить.
Если в проекте были созданы лишние файлы, их можно удалить, выделив с помощью мыши требуемый файл и нажав на клавиатуре клавишу Del (или, вызвав контекстное меню, выбрать пункт Удалить из проекта).
Теперь можно переходить к написанию кода (текста) программы в окне редактора.
Первая программа
Традиционно первая программа на языке С выводит на экран строку «Hello Word». Приведём пример этой программы (рис. 9) и произведем ее построчный разбор.
Рис. 9. Первая программа в MS VS 2008
Строка №1 содержит дерективу препроцессору, служащую для подключения заголовочного файла стандартной библиотеки потокового ввода-вывода. Она обрабатывается препроцессором до компиляции и позволяет использовать стандартные функции для работы с потоками ввода-вывода, объявленными в заголовочном файле iostream. Этот файл (наряду с библиотечным файлом iostream.lib, который содержит двоичное описание указанных функций), входит в состав MS VS 2008 и позволяет программисту использовать стандартные функции для работы с потоками ввода-вывода. Иногда для работы программы необходимо подключить несколько заголовочных файлов, тогда строчек с директивой #include будет тоже несколько. Они всегда располагаются первыми – в самом начале программы. Если используется стандартный заголовочный файл, то имя файла заключается в угловые скобки < >, а если файл написан самим программистом и находится в каком-то другом месте, то имя заключается в двойные кавычки “ ”.
Директивы препроцессора – это команды, выполняемые на этапе предварительной обработки программы компилятором, которые вступают в действие перед тем, как исходный код будет переведен (скомпилирован) в объектный код.
Строка №2 говорит о том, что код программы, написанный ниже, использует пространство имён std (стандартное – standart). Появление пространств имён обусловлено существованием огромного количества функций и констант, уже объявленных в стандартных библиотеках MS VS. Некоторые из них cхожи, но используются разными способами, поэтому программисту необходимо указывать какие именно функции к какому пространству имён принадлежат, используя префикс в виде std::cout. Объявление используемого пространства имён позволяет не использовать префиксы. В рассматриваемом примере простанство имён std используется для работы с потоками ввода-вывода.
Строка № 3 – заголовок главной функции main (). Это начало основного кода программы.
Функция – это самостоятельная единица программы, спроектированная для реализации единой задачи.
Обычно функции вызываются другими функциями, но функция main() вызывается автоматически при запуске программы. Каждая программа, созданная в виде консольного приложения, должна содержать эту функцию, причём только одну. Нельзя назвать именем main какую-либо другую функцию, созданную пользователем-программистом. Любая функция должна иметь тип возвращаемого значения. В рассматриваемом примере функция через оператор return (строка 6) возвращает целочисленное значение (тип), обозначенное ключевым словом int. После имени функции в круглых скабках () указываются параметры функции. Это переменные, значения которых необходимы для работы функции. В данном случае функция main не имеет параметров, о чем свидетельствует тип void в круглых скобках. Тело любой функции заключается в блок, ограниченный фигурными скобками { } (строка №4 и строка №7). Тело функции обычно состоит из раздела описания переменных (сейчас их нет) и раздела операторов функции (строка №5 и строка №6). Описание переменных может находиться в разных частях программы, но необходимо помнить, что есть такое понятие, как область видимости переменных – если переменная объявлена в какой-то строке, то она не может использоваться выше этой строки, а если переменная объявлена внутри блока, ограниченного фигурными скобками { }, то вне этого блока она вообще не может быть использована.
Строка №5 содержит оператор вывода на экран строки. Оператор cout – это имя потока для стандартного устройства вывода (экран). При этом << – оператор вставки в поток (стрелочки указывают направление движения потока данных из оперативной памяти " на экран). Текст, заключённый в двойные кавычки “ ” – это константная строка, которая без изменений будет выведена на экран.
Наша программа готова, теперь ее можно откомпилировать. Компиляцию с последующим выполнением программы можно запустить, нажав сочетание клавиш Ctrl+F5 или через меню Отладка"Запуск без отладки. При этом появится окно, внешний вид которого представлен на рис.10. В этом окне необходимо выбрать Да и программа начнет компилироваться.
Рис. 10. Диалоговое окно, возникающее перед построением нового проекта
Если не будет обнаружено синтаксических ошибок, то программа выполнится и можно будет увидеть окно консольного приложения (рис. 11).
Рис. 11. Внешний вид окна консольного приложения
Сообщение «Для продолжения работы нажмите любую клавишу . . . » дописывается системой MS VS 2008 и появляется только в режиме вышеуказанного запуска. Если программа была откомпилирована при помощи клавиши F7 и запущена на выполнение клавишей F5, то после вывода результата работы программы консольное приложение очень быстро закроется, так как в программе нет операторов, которые оставляют окно программы открытым до выполнения пользователем каких-либо действий. Т. е. программа отрабатывает, окно консоли закрывается и пользователь ничего не успевает увидеть. Дополнительно можно ввести оператор ввода с клавиатуры самостоятельно. Тогда код программы немного изменится (рис. 12).
Рис. 12. Первая программа в MS VS 2008 (модификация)
В представленном на рис. 12 тексте программы строка №7 содержит объявление переменной k, а строка №8 считывает значение этой переменной с клавиатуры. При этом cin – это имя стандартного потока ввода (клавиатура), а >> – оператор чтения из потока (с устройства в указанную переменную). В строке №6 текст сообщения написан, так называемой, латиницей (русские слова набраны с помощью латинской раскладки клавиатуры). Это необходимо потому, что кодировки консольного приложения и MS VS 2008 не совпадают. Для того чтобы выводить на консоль текст русскими буквами, их необходимо перевести из кодировки Windows в кодировку Dos. Как это сделать будет показано позднее.