Опубликован: 14.12.2010 | Доступ: свободный | Студентов: 3125 / 711 | Оценка: 4.53 / 4.12 | Длительность: 26:28:00

Лекция 2: Знакомство со средой Microsoft Visual Studio 2010 и настройка компилятора языка С. Стандартный ввод-вывод

< Лекция 1 || Лекция 2: 1234 || Лекция 3 >

Произведем разбор первой программы. Во-первых, надо отметить, что в языке С нет стандартных инструкций (операторов) для вывода сообщений на консоль (окно пользователя). В языке С предусматриваются специальные библиотечные файлы, в которых имеются функции для этих целей. В приведенной программе используется заголовочный файл с именем stdio.h (стандартный вводвывод), который должен быть включен в начало программы. Для вывода сообщения на консоль используется функция printf(). Для работы с консолью включен также заголовочный файл conio.h., который поддерживает функцию _getch(), которая извлекает символ из потока ввода, т. е. она предназначена для приема сообщения о нажатии какой-либо (почти любой) клавиши на клавиатуре. С другими компиляторами, возможно, потребуется getch(), т.е. без префиксного нижнего подчеркивания. Строка программы

int main (void)

сообщает системе, что именем программы является main() – главная функция, и что она возвращает целое число, о чем указывает аббревиатура "int". Имя main() – это специальное имя, которое указывает, где программа должна начать выполнение [1.1]. Наличие круглых скобок после слова main() свидетельствует о том, что это имя функции. Если содержимое круглых скобок отсутствует или в них содержится служебное слово void, то это означает, что в функцию main() не передается никаких аргументов. Тело функции main() ограничено парой фигурных скобок. Все утверждения программы, заключенные в фигурные скобки, будут относиться к функции main().

В теле функции main() имеются еще три функции. Во-первых, функции printf() находятся в библиотеке компилятора языка С, и они печатают или отображают те аргументы, которые были подставлены вместо параметров. Символ "\n" составляет единый символ newline (новая строка), т.е. с помощью этого символа осуществляется перевод на новую строку. Символ "\t" осуществляет табуляцию, т.е. начало вывода результатов программы с отступом вправо.

Функция без параметров _getch() извлекает символ из потока ввода (т.е. ожидает нажатия почти любой клавиши). С другими компиляторами, возможно, потребуется getch(), т.е. без префиксного нижнего подчеркивания.

Последнее утверждение в первой программе

return 0;

указывает на то, что выполнение функции main() закончено и что в систему возвращается значение 0 (целое число). Нуль используется в соответствии с соглашением об индикации успешного завершения программы [1.3].

В завершение следует отметить, что все действия в программе завершаются символом точки с запятой.

Все файлы проекта сохраняются в той папке, которая сформировалась после указания в поле Location имени проекта (hello). На рис. 1.19 показаны папки и файлы проекта Visual Studio 2010..

Файлы и папки созданного проекта

Рис. 1.19. Файлы и папки созданного проекта

На рис. 1.19 файлы с полученными расширениями означают:

hello.slnфайл решения для созданной программы. Он содержит информацию о том, какие проекты входят в данное решение. Обычно, эти проекты расположены в отдельных подкаталогах. Например, наш проект находится в подкаталоге hello;

hello.suoфайл настроек среды Visual Studio при работе с решением, включает информацию об открытых окнах, их расположении и прочих пользовательских параметрах.

hello.sdfфайл содержащий вспомогательную информацию о проекте, который используется инструментами анализа кода Visual Studio, такими как IntelliSense для отображения подсказок об именах и т.д.

Файлы папки Debug показаны на рис. 1.20.

Файлы папки Debug

Рис. 1.20. Файлы папки Debug

Рассмотрим файлы в соответствии с рис. 1.20.

hello.exe – исполняемый файл проекта;

hello.ilkфайл "incremental linker", используемый компоновщиком для ускорения процесса компоновки;

hello.pdb – отладочная информация/информация об именах в исполняемых файлах, используемая отладчиком.

Файлы папки hello показаны на рис. 1.21.

Содержимое папки hello

Рис. 1.21. Содержимое папки hello

Характеристика содержимого папки hello:

main.cфайл исходного программного кода,

hello.vcxprojфайл проекта,

hello.vcxproj.userфайл пользовательских настроек, связанных с проектом,

hello.vcxproj.filtersфайл с описанием фильтров, используемых Visual Studio Solution Explorer для организации и отображения файлов с исходным кодом.

Практическая часть

В практической части выполните следующие задания на основе рассмотренной программы hello:

  1. Напишите программу, которая выводила бы на консоль название факультета, где учитесь, номер группы, свою фамилию, имя и отчество в разных строках дисплея (консоли) с помощью одной функции printf().
  2. Вывод выполните с помощью нескольких функций printf() (количество функций должно соответствовать каждой порции информации).
  3. Для задания пункта 2 вывод информации выполните в различных строках подряд, т.е. без межстрочного пропуска.
  4. Проверьте программу без ключевого слова void для функции main().

Примечание. Вывод требуемой информации осуществляется с помощью букв латинского алфавита. Комментарии в программе могут быть сделаны после символа "//" или внутри комбинации символов "/* */".

Контрольные вопросы

  1. Какие компиляторы языка С вам известны?
  2. Какое имя имеет исполняемый файл созданного проекта?
  3. Объясните назначение заголовочных файлов stdio.h, conio.h.
  4. Как будет работать программа без заголовочного файла conio.h?
  5. В каком месте программы находится точка ее входа?
  6. Как осуществляется табуляция строки на консоли и на сколько позиций выполняется отступ от левого края?
  7. Какое значение имеет главная функция проекта main() в программах на языке С?
< Лекция 1 || Лекция 2: 1234 || Лекция 3 >
Мухаммадюсуф Курбонов
Мухаммадюсуф Курбонов