Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Справочник по функциям С++.doc
Скачиваний:
168
Добавлен:
02.05.2014
Размер:
3.57 Mб
Скачать

Asctime

-----------------------------------------------------------------

НазначениеПреобразует date и time в формат ASCII.

Синтаксис #include<time.h>

char *asctime(struct tm *tm);

Прототип вtime.h

Замечанияasctime - преобразует время, хранимое в виде

структуры, в 26-символьную строку той

же формы, что и функция ctime:

Sun Oct 05 01:03:52 1963\n\0

Возвращаемоеasctime возвращает указатель на строку,

значениесодержащую дату и время. Эта строка является

статической переменной и переписывается при

каждом вызове.

ПереносимостьФункция доступна в системах UNIX и совместима с

ANSI Си.

Смотри также ctime, difftime, ftime,gmtime, localtime,

stime, time, tzset

Пример

#include<stdio.h>

#include<time.h>

main ()

{

stuct tm *tm_now;

time_t secs_now;

char *str_now;

time(&secs_now); /* в секундах */

str_now = ctime(&secs_now); /* сделать

строкой */

printf("Число секунд с 1 января 1970 г. = "

" %ld\n", secs_now);

printf("Другими словами, сейчас %s\n",

str_now);

tm_now = localtime(&secs_now); /* сделать

структуру */

printf("По структуре: %d %02d-%02d-%02d "

" %02d:%02d.%02d\n",

tm_now->tm_yday, tm_now->tm_mon,

tm_now->tm_mday, tm_now->tm_year,

tm_now->tm_hour, tm_now->tm_min,

tm_now->tm_sec);

/* от структуры к строке */

str_now = asctime(tm_now);

printf(Еще раз, сейчас %s\n", str_now);

}

Результат выполнения программы

Число секунд с 1 января 1970 г. = 315594553

Другими словами, сейчас Tue Jan 01 12:09:13 1980

По структуре: 0 00-01-80 12:09:13

Еще раз, сейчас Tue Jan 01 12:09:13 1980

-----------------------------------------------------------------

asin

-----------------------------------------------------------------

НазначениеВычисление арксинуса.

Синтаксис#include<math.h>

double asin(double x);

Прототип в math.h

ЗамечанияФункция возвращает арксинус входного параметра.

Аргумент функции должен иметь значение в диапа-

зоне от -1 до 1. Если аргумент выходит за ука-

занные границы, функция asin возвращает значе-

ние 0 и устанавливает значение переменной errno

в

EDOM аргумент не входит в область

определения функции.

Возвращаемоеasin возврашает значение в диапазоне от 0 до

значениеpi.

Обработчик ошибок для этой функции может быть

модифицирован с помощью функции matherr.

ПереносимостьФункция доступна в системах типа UNIX и совмес-

тима с ANSI Си.

Смотри такжеacos, atan, atan2, cos, cosh, matherr, sin,

sinh, tan, tanh

-----------------------------------------------------------------

assert

-----------------------------------------------------------------

НазначениеПроверяет условия и завершение, при необходимо-

сти, программы.

Синтаксис#include<assert.h>

#include<stdio.h>

void assert (int test);

Прототип вassert.h

Замечанияassert представляет собой макрос, расширяемый

в оператор if; если выражение test в полученном

расширении ложно, то assert печатает сообщение

и прекращает выполнение программы (через обра-

щение к abort).

Сообщение, которое распечатывает assert, имеет

вид:

Assertion failed:<условие>, file<имя-файла>,

line<номер строки>

<имя файла> и <номер строки>, используемые в

этом сообщении, представляет собой имя исходно-

го файла и номер строки, в которой находится

макрос assert.

Если же в исходном тексте перед директивой

#include<assert.h> вы поместили директиву

#define NDEBUG ("не отладка"), то работа опера-

тора assert отменяется.

ВозвращаемоеНет.

значение

Совместимость Данный макрос доступен на некоторых UNIX - сис-

темах, включая System III и V, а также совмес-

тим с ANSI Си.

Смотри такжеabort

Пример

/* ASSERT.C: добавляет один элемент в список,

проверяя затем, чтобы он не был равен NULL */

#include<assert.h>

#include<stdio.h>

struct ITEM {

int key;

int value;

};

void additem (struct ITEM *itemptr)

{

assert (itemptr !=NULL);

/* это строка 13 */

/* ...добавить элемент... */

}

main ()

{

additem (NULL);

}

Результат выполнения программы

Assertion failed:itemptr !=NULL, file C:

\TURBOC\ASSERT.C, line 13

----------------------------------------------------------------

atan

----------------------------------------------------------------

НазначениеВычисление арктангенса.

Синтаксис#include<math.h>

double atan(double x);

Прототип в math.h

ЗамечанияФункция возвращает арктангенс входного

параметра.

Возвращаемоеatan возврашает значение в диапазоне от -pi/2

значениедо pi/2.

Обработчик ошибок для этой функции может быть

модифицирован с помощью функции matherr.

ПереносимостьФункция доступна в системах типа UNIX и совмес-

тима с ANSI Си.

Смотри также acos, asin, atan2, cos, cosh, matherr, sin,

sinh, tan, tanh

----------------------------------------------------------------

atan2

----------------------------------------------------------------

НазначениеВычисление арктангенса y/x.

Синтаксис #include<math.h>

double atan2(double y, double x);

Прототип вmath.h

ЗамечанияФункция возвращает арктангенс значения y/x и

позволяет получить более точный результат (чем

функция atan), когда результирующий угол близок

к pi/2 или -pi/2 (значение x достаточно мало).

Если значения x и y равны 0, функция устанавли-

вает значение переменной errno в EDOM.

Возвращаемоеatan2 возврашает значение в диапазоне от -pi

значениедо pi.

Обработчик ошибок для этой функции может быть

модифицирован с помощью функции matherr.

ПереносимостьФункция доступна в системах типа UNIX и совмес-

тима с ANSI Си.

Смотри также acos, asin, atan, cos, cosh, matherr, sin,

sinh, tan, tanh

----------------------------------------------------------------

atexit

----------------------------------------------------------------

НазначениеОпределение функции завершения.

Синтаксис #include<stdlib.h>

int atexit(atexit_t func)

Прототип вstdlib.h

Замечанияatexit фиксирует функцию, на которую указывает

func, в качестве функции завершения.

При нормальном завершении программы функция

exit вызывает *func (без аргументов) прямо пе-

ред возвращением в операционную систему. Выз-

ванная функция относится к типу atexit_t, кото-

рая определена через typedef в stdlib.h.

Каждое обращение к atexit фиксирует новую функ-

цию выxода. Максимально может быть зафиксирова-

но до 32 функций, которые будут выполнены в по-

рядке LIFO ("первый пришел, последний ушел").

Возвращаемоеatexit возвращает 0 в случае успеxа и не 0 при

значениеошибке (нет места для фиксации функции).

ПереносимостьФункция совместима с ANSI Си.

Смотри также abort, _exit, exit, spawn...

Пример

#include<stdlib.h>

#include<stdio.h>

atexit_t exit_fn1(void)

{

printf("Вызвана функция выхода 1\n");

}

atexit_t exit_fn2(void)

{

printf("Вызвана функция выхода 2\n");

}

main()

{

atexit(exit_fn1); /* установить указатель на

exit_fn1 */

atexit(exit_fn2); /* установить указатель на

exit_fn2 */

printf("Выход из main ...\n");

}

Вывод программы

Выход из main ...

Вызвана функция выхода 2

Вызвана функция выхода 1

----------------------------------------------------------------

atof

----------------------------------------------------------------

НазначениеПереводит строку в формат числа с плавающей

точкой.

Синтаксис #include<math.h>

double atof(const char *nptr);

Прототип в math.h, stdlib.h

Замечанияatof преобразует строку, на которую указывает

nptr, в double;

Данная функция распознает:

- необязательную строку из табуляций и пробелов

- необязательный знак

- затем строку цифр и необязательную десятичную

точку (цифры могут располагаться по обе сто-

роны от десятичной точки)

- затем необязательные е или Е, за которыми

следует необязательное знаковое целое.

Строка символов должна иметь следующий общий

формат:

[ws] [sn] [ddd] [.] [ddd] [fmt[sn]ddd]

atof также распознает +INF и -INF, используемые

при обозначении бесконечности (неопределеннос-

ти), а также +NAN и -NAN для обозначения "не

числа".

При обнаружении первого нераспознаваемого сим-

вола, функция прекращает преобразование.

ВозвращаемоеФункция atof возвращает преобразованное из

значениевходной строки число. Если строка не может быть

преобразована в число соответствующего типа,

функция возвращает 0.

При переполнении функция возвращает отрицатель-

ное или положительное значение HUGE_VAL, при

этом обработчик ошибок matherr не вызывается.

Переносимостьдоступна в UNIX системах и совместима с ANSI

Си.

Смотри такжеatoi, atol, ecvt, fcvt, gcvt, strtod

----------------------------------------------------------------

atoi

----------------------------------------------------------------

НазначениеПереводит строку в формат числа типа integer.

Синтаксис integer atoi(const char *nptr);

Прототип вstdlib.h

Замечанияatoi преобразует строку, на которую указывает

nptr, в integer.

Данная функция распознает:

- необязательный знак

- затем строку цифр

Строка символов должна иметь следующий общий

формат:

[ws] [sn] [ddd]

При обнаружении первого нераспознаваемого сим-

вола, функция прекращает преобразование.

Функция atoi не контролирует переполнение.

ВозвращаемоеФункция atoi возвращает преобразованное из

значениевходной строки число. Если строка не может быть

преобразована в число типа integer, то функция

возвращает 0.

Переносимостьдоступна в UNIX системах и совместима с ANSI

Си.

Смотри такжеatof, atol, ecvt, fcvt, gcvt, strtod

----------------------------------------------------------------

atol

----------------------------------------------------------------

НазначениеПереводит строку в формат числа типа long.

Синтаксис long atol(char *nptr)

Прототип вstdlib.h

Замечанияatol преобразует строку, на которую указывает

nptr, в long.

Данная функция распознает:

- необязательный знак

- затем строку цифр

Строка символов должна иметь следующий общий

формат:

[ws] [sn] [ddd]

При обнаружении первого нераспознаваемого сим-

вола, функция прекращает преобразование.

Функция atol не контролирует переполнение.

ВозвращаемоеФункция atol возвращает преобразованное из

значениевходной строки число. Если строка не может быть

преобразована в число типа long, то функция

возвращает 0.

Переносимостьдоступна в UNIX системах и совместима с ANSI

Си.

Смотри такжеatof, atoi, ecvt, fcvt, gcvt, strtod

----------------------------------------------------------------

bar

----------------------------------------------------------------

НазначениеВычерчивание полосы.

Синтаксис#include<graphics.h>

void far bar (int left, int top, int right,

int bottom);

Прототип в graphics.h

Замечанияbar вычерчивает заполненную прямоугольную

полосу. Полоса заполняется с использованием те-

кущего шаблона и цвета заполнения. bar вычерчи-

вает неокантованную полосу; для получения окан-

тованной двумерной полосы используйте bar3d с

аргументом depth=0.

Верхний левый и нижний правый углы прямоуголь-

ника задаются параметрами (left, top) и (right,

bottom) соответственно. Координаты задаются в

единицах растра.

ВозвращаемоеНет.

значение

ПереносимостьДанная функция работает только на IBM PC и

совместимых моделях при наличии соответствующих

графических адаптеров.

Смотри также bar3d, rectangle, setcolor, setfillstyle

Пример

#include<graphics.h>

main()

{

/* требование автоопределения */

int graphdriver = DETECT, graphmode;

/* инициализация графики */

initgraph(&graphdriver, &graphmode, "");

setfillstyle(SOLID_FILL, MAGENTA);

bar3d(100,10,200,100,5,1);

setfillstylle(HATCH_FILL, RED);

bar(30,30,80,80);

getche();

closegraph();

}

-----------------------------------------------------------------

bar3d

-----------------------------------------------------------------

НазначениеВычерчивание трехмерной полосы.

Синтаксис #include<graphics.h>

void far bar3d (int left, int top, int right

int bottom, int depth,

int topflag);

Прототип вgraphics.h

Замечанияbar3d вычерчивает трехмерную прямоугольную по-

лосу с дальнейшим заполнением ее текущими шаб-

лоном и цветом заполнения. Трехмерная окантовка

полосы рисуется текущими стилем и цветом линии.

Глубина полосы в точках растра задается пара-

метром depth.

Параметр topflag регулирует необходимость вы-

черчивания трехмерной вершины полосы. Если

topflag не ноль, то вершина вычерчивается, в

противном случае - нет (делая возможным вычер-

чивание нескольких полос одна над другой).

Верхний левый и нижний правый углы прямоуголь-

ника задаются параметрами (left, top) и (right,

bottom) соответственно. Координаты задаются в

единицах растра.

Для вычисления типовой глубины трехмерной поло-

сы, обычно берется 25% ширины полосы, например:

bar3d (left, top, right, bottom,

(right-left)/4,1);

ВозвращаемоеНет.

значение

ПереносимостьДанная функция работает только на IBM PC и

совместимых моделях при наличии соответствующих

графических адаптеров.

Смотри также bar, rectangle, setcolor, setfillstyle

Пример Смотри bar

-----------------------------------------------------------------

bdos

-----------------------------------------------------------------

НазначениеСистемный вызов MS-DOS.

Синтаксис int bdos (int dosfun, void dosdx,

unsigned dosal)

Прототип в dos.h

ЗамечанияЭта функция обеспечивает прямой доступ к многим

системным вызовам MS-DOS. Смотри руководство

системного программиста (Programmer's Reference

Manual) для детализации каждого системного вы-

зова.

Те системные вызовы, которые требуют целый ар-

гумент, используют bdos, те же, которые требуют

указатель на аргумент, используют bdosptr.

Для малых модeлей данных (tiny, small и medium)

bdos и bdosptr аналогичны. В больших моделях

данных (compact, largе и huge), очень важно ис-

пользование именно bdosptr для системных вызо-

вов, которые требуют указатель в качестве аргу-

мента вызова.

dosfun описана в Руководстве программиста по MS

-DOS.

dosdx - значение регистра DX при вызове bdos.

dosal - значение регистра AL.

Возвращаемоеbdos возвращает значение регистра АХ,

значениеустановленное системным вызовом.

ПереносимостьУникальна для MS-DOS.

Смотри также bdosptr, geninterrupt, int86, int86x, intdos,

intdosx

Пример

#include<stdio.h>

#include<dos.h>

/* Получение текущего драйвера в виде: 'A',

'B', ...*/

char current_drive (void)

{

char curdrive;

/* Получение имени текущего диска в виде: 0,

1, ... */

curdrive = bdos(0x19,0,0);

return('A'+curdrive);

}

main()

{

printf("Текущий драйвер - %s\n",

current_drive()); }

Результат выполнения программы:

Текущий драйвер - С

-----------------------------------------------------------------