Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабник по C.pdf
Скачиваний:
74
Добавлен:
01.06.2015
Размер:
876.9 Кб
Скачать

– 26 –

puts( имя_строки );

Функция выводит на экран символы, содержащиеся в переменной имя_строки.

char string[25]; gets( string ); puts( string );

6.5. ВВОД СИМВОЛА

Безаргументная функция getchar() возвращает код символа нажатой клавиши. Однако следует помнить, что данная функция использует функцию DOS буферизованного ввода, т.е. символы начнут передаваться в программу только после нажатия клавиши «Enter».

char symb; symb=getchar();

Функция getch() осуществляет ввод символа с позначной активацией (т.е. сразу после нажатия клавиши), и без эхо-печати.

6.6. ВЫВОД СИМВОЛА

рutсhar ( имя );

Вывод на экран вводимых с клавиатуры символов осуществляется следующим образом:

putchar( getch() );

7. ПРЕПРОЦЕССОР

Препроцессор анализирует строки в программе, которые начинаются с символа # и называются директивами. Препроцессор работает до компиляции. Директивы можно разделить на три группы.

7.1. ВКЛЮЧЕНИЕ ФАЙЛОВ

#include <имя_файла.h> #include "имя_файла.h"

С помощью include к программе подключаются заголовочные файлы, которые далее рассматриваются как часть программы. Как правило, с помощью системных заголовочных файлов подключаются библиотеки языка – stdio.h, math.h и т.п. Пользователь может сам написать свой заголовочный файл и занести туда описание своих переменных и функций, которые он использует в различных программах. Все системные заголовочные файлы сосредоточены в системном каталоге include. Первая форма подключения файлов рассчитана именно на этот каталог, вторая предполагает, что файл может храниться в произвольном каталоге. Упомянем некоторые распространенные системные файлы.

Файл string.h обеспечивает работу с символьными строками. При этом наличие символьного нуля в данных обязательно. Если такового нет, то для обработки символьных массивов можно воспользоваться файлом mem.h. В файле ctype.h есть функции для проверки символа simb на букву – isalpha(simb), на знак пунктуации – ispunct(simb) и др. Файл stdlib.h содержит функции преобразования строки в число – atof() и числа типа int в строку. Кроме того, в файле есть полезная функция сортировки qsort(arg1,arg2,arg3,arg4), где arg1 – указатель на сортируемый массив, arg2 – чис-

© 1998 Калачев Д.П., Лутай В.Н.

– 27 –

ло элементов массива, arg3 – размер элементов, arg4 – указатель на функцию сравнения сортировки.

Математические функции сосредоточены в файле math.h. В частности, здесь определены тригонометрические функции, функция-генератор случайных чисел и др.

Для работы с функциями ДОС и специальными функциями предназначены заголовочные файлы dos.h, bios.h, dir.h В частности, функции peek и poke из dos.h предназначены для работы с видеопамятью. В этом же файле определена функция получения системного времени. Используя dir.h можно создать или сменить каталог; bios.h обеспечивает взаимодействие с портами связи, клавиатурой и принтером.

7.2. ВЫПОЛНЕНИЕ ПОДСТАНОВОК

#define имя_подстановки

Пример: константа 20 во всей программе заменит N.

#define N 20 void main() { char string [N];

. . .

}

#define then

Эта подстановка позволяет использовать в программе конструкцию вида if(x>y) then, так как компилятор будет воспринимать then как пробел.

#define boolean int #define TRUE 1 #define FALSE 0

Объединив эти подстановки в файл boolean.h и подключив его к своей программе, можно писать объявления и выражения boolean symb, if(symb==FALSE) и т.п.

Кроме подстановок-констант возможны подстановки, содержащие аргументы и по действию аналогичные функциям.

#define Square(x) ((x)*(x))

. . .

int x=4; int z; z=Square(x);

. . .

7.3. УСЛОВНАЯ КОМПИЛЯЦИЯ

Здесь используются директивы #if, #ifdef, #undef, #else, #endif, которые позволяют изменять текст программы.

Пример:

#if SYS=="IBM" #include <graphics.h> #endif

Если перед этими предложениями была директива #define SYS "IBM", то файл graphics.h будет подключен к программе.

Например, если первой директивой препроцессора была #define M, то записав:

© 1998 Калачев Д.П., Лутай В.Н.