На этом шаге мы рассмотрим особенности формирования текста приложения.
Изменим содержимое функции main () следующим образом:
printf("Hello!\n"); _getch();
Это код нашего первого приложения. Он должен вывести на экран текст "Hello!" и задержать изображение, чтобы оно не исчезло, пока мы рассматриваем, что там появилось на экране.
Вывод на экран выполняет оператор printf("Hello!\n");, а задержку изображения - оператор _getch ();.
Заметим, что оператором в C/C++ называют некоторое выражение C/C++, оканчивающееся точкой с запятой. В первый оператор входит функция printf("Hello!\n"), а во второй - функция _getch() (эта функция из C/C++ введена вместо ранее использовавшейся функции getch ()).
В итоге наше консольное приложение будет иметь вид, представленный на рисунке 1.
Рис.1. Вид консольного приложения до компиляции
Чтобы приложение заработало, его надо откомпилировать, т. е. перевести написанное на языке C/C++ в машинные коды. Для этого запускается программа-компилятор. Запускается она либо нажатием комбинации клавиш Ctrl+Shift+B, либо выполнением опции главного меню Build | Solution (Построение | Построить решение), либо нажатием функциональной клавиши F7. Если мы проделаем подобные действия, то получим картинку, показанную на рисунке 2.
Рис.2. Результат 1-й компиляции приложения
Картинка показывает, что наша компиляция не удалась: в окне вывода высветились сообщения об ошибках. В частности мы видим сообщение:
"error C3861: '_getch': идентификатор не найден".
Это означает, что компилятор "не узнает" функцию _getch(). Точно так же компилятор ничего не нашел относительно функции printf(). Если кнопкой мыши дважды щелкнуть на каждой строке с информацией об ошибке, то в поле функции main(), т. е. в нашей программе в поле подшивки (вертикальная полоса слева от текста) отметится та строка, в которой эта ошибка обнаружена. Этот процесс также показан на рисунке 3.
Рис.3. Обнаружение операторов с ошибками в теле программы по результатам компиляции
А теперь разберемся с обнаруженными ошибками.
Щелкнем дважды на имени функции _getch(), чтобы пометить ее, и нажмем клавишу F1. Откроется окно помощи. В появившемся окне мы найдем сведения о необходимой нам функции, в том числе и о местонахождении ее описания (Required header file conio.h).
Рис.4. Окно помощи
Если этот файл подключить к нашей программе, то компилятор станет находить сведения об этой функции и ошибка устранится. Включение файла с описанием функции (Header file - это файл оглавления, отсюда и символ h в его расширении) осуществляется директивой #nclude - это оператор компилятора. Он включает в текст программного модуля файл, который указан в угловых скобках. Но вы и сами можете задавать в подобных файлах необходимую для вашей программы информацию. Тогда для ее подключения к вашей программе имя такого файла в операторе #include должно быть в двойных кавычках.
Итак, в заголовке программы пишем #include <conio.h>.
Аналогично поступаем и со второй ошибкой компиляции. Определяем: чтобы компилятор "узнал" функцию printf (), надо к программе подключить заголовочный файл #include <stdio.h>.
Рис.5. Использование директивы #include
На следующем шаге мы закончим изучение этого вопроса.