[Оглавление]
[Вниз]
ПРИЛОЖЕНИЕ 2
Предельные значения вводятся каждой реализацией для данных целочисленных типов и арифметических значений, представляемых в форме с плавающей точкой. Предельные значения определяются набором констант, названия (имена) которых стандартизированы и не зависят от реализации. Ниже приводятся обозначения констант и их минимальные (по абсолютной величине) допустимые стандартные ANSI значения. В конкретных реализациях абсолютные значения констант могут быть большими, чем приведенные в таблицах.
Таблица П2.1 Предельные значения для целочисленных типов - файл limits. h
Имя константы | Стандартное значение | Смысл |
CHAR_BIT | 8 | Число битов в байте |
SCHAR_MIN | -127 | Минимальное значение для signed char |
SCHAR_MAX | +127 | Максимальное значение signed char |
OCHAR_MAX | 255 | Максимальное значение unsigned char |
CHAR_MIN | 0 SCHAR_MIN | Минимальное значение для char |
CHAR_MAX | UCHAR_MAX SCHAR_MAX | Максимальное значение для char |
MB_LEN_MAX | 1 | Минимальное число байт в много байтовом символе |
SHRT_MIN | -32767 | Минимальное значение для short |
SHRT_MAX | +32767 | Максимальное значение для short |
USHRT_MAX | 65535 | Максимальное значение unsigned short |
INT_MIN | -32767 | Минимальное значение для int |
INT_MAX | +32767 | Максимальное значение для int |
UINT_MAX | 65535 | Максимальное значениe unsigned int |
LONG_MIN | -2147483647 | Минимальное значение для long |
LONG_MAX | +2147483647 | Максимальное значение для long |
ULONG_MAX | 4294967295 | Максимальное значение unsigned long |
В табл. П2.2 префикс FL.1_ соответствует типу float; для типа double используется префикс DBL_.
Таблица П2.2 Константы для вещественных типов файл floaf. h
Имя константы | Стандартное значение | Смысл |
FLT_RADIX | 2 | Основание экспоненциального представления, например:2,16 |
FLT_DIG | 6 | Количество верных десятичных цифр |
FLT_EPSILOH | 1Е-5 | Минимальное х, такое, что 1.0 + х not= 1.0 |
Fl.T_MANT_DIG | Количество цифр по основанию FLT RADIX в мантиссе | |
FLT_MAX | 1E+37 | Максимальное число с плавающей точкой |
ELT_MAX_EXP | Максимальное n, такое, что FLT_ RADIXn - 1 представимо в виде числа типа float | |
FLT_MAX_10_EXP | 38 | Максимальное целое n, такое, что 10я представимо как float |
FI.T_MIN | 1E-37 | Минимальное нормализованное число с плавающей точкой типа float |
FI.T_MIN_EXP | Минимальное n, такое, что 10я представимо в виде нормализованного числа | |
FLT_MIN_10_EXP | -37 | Минимальное отрицательное целое n, такое, что 10я - в области определения чисел типа float |
DBL_DIG | 10 | Количество верных десятичных цифр для типа double |
DBL_EPSILON | 1E-9 | Минимальное х, такое, что 1.0 + х not= 1.0, где х принадлежит типу double |
DBL_MANT_DIG | Количество цифр по основанию FLT_ RADIX в мантиссе для чисел типа double | |
DBL_ MAX | 1E+37 | Максимальное число с плавающей точкой типа double |
DBL_MAX_EXP | Максимальное n, такое, что FLT_RADIXn -1 представимо в виде числа типа double | |
DBL_MAX_10_EXP | +37 | Максимальное целое n, такое, что 10я представимо как double |
DBL_MIN | 1E-37 | Минимальное нормализованное число с плавающей точкой типа double |
DBL_MIN_EXP | Минимальное n, такое, что 10 представимо в виде нормализованного числа типа double | |
DBI._MIN_10_EXP | -37 | Минимальное отрицательное целое n, такое, что 10я - в области определения чисел типа double |
Таблица ПЗ.1 Математические функции - файл math. h
Функция | Прототип и краткое описание действий |
abs | int abs(int i); Возвращает абсолютное значение целого аргумента i. |
acos | double асоs(double х); Функция арккосинуса. Значение аргумента должно находиться в диапазоне от -1 до +1. |
asin | double asin(double х); Функция арксинуса. Значение аргумента должно находиться в диапазоне от -1 до +1. |
atan | double atan(double х) ; Функция арктангенса. |
atan2 | double atan2(double у, double х); Функция арктангенса от значения у/х. |
cabs | double cabs(struct complex znum). Вычисляет абсолютное значение комплексного числа znua. Определение структуры (типа) complex - в файле math. h. |
cos | double cos(double x). Функция косинуса. Угол (аргумент) задается в радианах. |
cosh | double cosh(double x). Возвращает значение гиперболического косинуса х. |
exp | double exp(double x). Вычисляет значение е (экспоненциальная функция). |
fabs | double fabs(double x). Возвращает абсолютное значение вещественного аргумента х двойной точности. |
floor | double floor(double x). Находит наибольшее целое, не превышающее значения х. Возвращает его в форме double. |
fmod | double fmod(double x, double у). Возвращает остаток от деления нацело х на у. |
hypot | double hypot(double x, double у). Вычисляет гипотенузу х прямоугольного треугольника по значениям катетов х, у (z2 = x1 + у1) |
labs | long labs(long x). Возвращает абсолютное значение целого аргумента long х. |
ldехр | double ldexp(double v, int e). Возвращает значение выражения v2. |
log | double log(double x). Возвращает значение натурального логарифма (ln x). |
log1() | double log10(double x). Возвращает значение десятичного логарифма (log10 x). |
poly | double poly(double x, int n, double c[] ). Вычисляет значение полинома: c[n)xn + c[n - 1] xn-1 + ... + c[l]x + c[0] |
pow | double pow(double x, double y). Возвращает значение хn, т.е. х в степени у. |
pow10 | double pow10(int p). Возвращает значение 10. |
sin | double sin(double x). Функция синуса. Угол (аргумент) задается в радианах. |
sinh | double sinh(double x). Возвращает значение гиперболического синуса для х. |
sqrt | double sqrt(double x). Возвращает положительное значение квадратного корня -yх . |
tan | double tan(double x). Функция тангенса. Угол (аргумент) задается в радианах. |
tanh | double tanh(double x). Возвращает значение гиперболического тангенса для х. |
Таблица ПЗ.2 Функции проверки и преобразования символов - файл ctype. h
Функция | Прототип и краткое описание действий |
isalnum | int isalnum(int с). Дает значение не нуль, если с - код буквы или цифры (А + Z, a + z, 0 + 9), и нуль - в противном случае. |
isalpha | int isalpha(int с). Дает значение не нуль, если с - код буквы (А + 2, а + z), и нуль - в противном случае. |
isascii | int isascii(int с). Дает значение не нуль, если с есть код ASCII, т.е. принимает значение от 0 до 127, в противном случае - нуль. |
iscntrl | int iscntrl(int с). Дает значение не нуль, если с - управляющий символ с кодами 0х00 + 0x01F или 0x7F, и нуль - в противном случае. |
isdigit | int isdigit(int с). Дает значение не нуль, если с - цифра (0 + 9) в коде ASCII, и нуль - в противном случае. |
isgraph | int isgraph(int с). Дает значение не нуль, если с - видимый (изображаемый) символ с кодом (0х21 + Ох7Е), и нуль - в противном случае. |
islower | int islower(int с). Дает значение не нуль, если с - код символа на нижнем регистре (а + z), и нуль - в противном случае. |
isprint | int isprint(int с). Дает значение не нуль, если с - печатный символ с кодом (0х20 + 0х7Е), и нуль - в противном случае. |
ispunct | int ispunct(int с). Дает значение не нуль, если с - символ-разделитель (соответствует iscntrl или isspase), и нуль - в противном случае. |
isspace | int isspace(int с). Дает значение не нуль, если с - обобщенный пробел: пробел, символ табуляции, символ новой строки или новой страницы, символ возврата каретки (0х09 + OxOD, 0х20), и нуль - в противном случае. |
isupper | int isupper(int с). Дает значение не нуль, если с - код символа на верхнем регистре (А + Z), и нуль - в противном случае. |
isxdigit | int isxdigit(int с). Дает значение не нуль, если с - код шестнадцатеричной цифры (0 + 9, А + F, а + f), и нуль - в противном случае. |
toascii | int toascii(int с). Преобразует целое число с в символ кода ASCII, обнуляя все биты, кроме младших семи. Результат от 0 до 127. |
tolower | int tolower(int с). Преобразует код буквы с к нижнему регистру, остальные коды не изменяются. |
toupper | int toupper(int с). Преобразует код буквы с к верхнему регистру, остальные коды не изменяются. |
Таблица П3.3.Функция ввода-вывода для стандартных файлов - файл stdio. h
Функция | Прототип и краткое описание действии |
getch | int getch(void). Считывает один символ с клавиатуры без отображения на экране. |
getchar | int getchar(void). Считывает очередной символ из стандартного входного файла (stdin). |
gets | char *gets(char *s). Считывает строку s из стандартного входного файла (stdin). |
printf | int printf(char *format [, argument, ...] ). Функция форматированного вывода в файл stdout. |
putchar | int putchar(int с). Записывает символ с в стандартный файл выхода (stdout). |
puts | int puts(const char *s). Записывает строку s в стандартный файл вывода (stdout). |
scanf | int scanf(char *format[, argument, ...]). Функция форматированного ввода из файла stdin. |
sprintf | int sprintf(char *s,char *format[, argument,... ]). функция форматированной записи в строку s. |
sscanf | int sscanf(char *s,char *format [, address,... ]). Функция форматированного чтения из строки s. |
ungetch | int ungetch(int с). Возвращает символ с в стандартный файл ввода stdin, заставляя его быть следующим считываемым символом. |
Таблица ПЗ.4. Функции для работы со строками - файлы string. h, stdlib. h
Функция | Прототип и краткое описание действий |
atof | double atof(char *str). Преобразует строку str в вещественное число типа double. |
atoi | int atoi(char *str). Преобразует строку str в десятичное целое число. |
atol | long atol(char *str). Преобразует строку str в длинное десятичное целое число. |
itoa | char *itoa(int v, char *str, int baz). Преобразует целое v в строку str. При изображении числа используется основание baz (2 < baz < 36). Для отрицательного числа и baz = 10 первый символ - "минус" (-). |
ltoa | char *ltoa(long v, char *str, int baz). Преобразует длинное целое v в строку str. При изображении числа используется основание baz (2 <= baz <= 36). |
strcat | char *strcat(char *sp, char *si). Приписывает строку si к строке sp (конкатенация строк). |
strchr | char *strchr(char *str, int с). Ищет в строке str первое вхождение символа с. |
strcmp | int strcmp(char *strl, char *str2). Сравнивает строки strl и str2. Результат отрицателен, если strl < str2; равен нулю, если strl == str2 и положителен, если strl > str2 (сравнение без знаковое). |
strcpy | char *strcpy(char *sp, char *si). Копирует байты строки si в строку sр. |
strcspn | int strcspn(char *strl, char *str2). Определяет длину первого сегмента строки strl, содержащего символы, не входящие во множество символов строки str2. |
strdup | char *strdup(const char *str). Выделяет память и переносит в нее копию строки str. |
strlen | unsigned strlen(char *str). Вычисляет длину строки str. |
strlwr | char *strlwr(char *str). Преобразует буквы верхнего регистра в строке в соответствующие буквы нижнего регистра. |
strncat | char *strncat(char *sp, char *si, int kol). Приписывает kol символов строки si к строке sp (конкатенация). |
strncmp | int strncmp(char *str1, char *str2, int kol). Сравнивает части строк strl и str2, причем рассматриваются первые kol символов. Результат отрицателен, если strl < str2; равен нулю, если strl == str2 и положителен, если strl > str2. |
strncpy | char *strncpy( char *sp, char *si, int kol). Копирует kol символов строки si в строку sp ("хвост" отбрасывается или дополняется пробелами). |
strnicmp | char *stricmp(char *strl, char *str2, int kol). Сравнивает не более kol символов строки strl и строки str2, не делая различия регистров (см. функцию strncmp ()). |
strnset | char *strnset(char *str, int с, int kol). Заменяет первые kol символов строки str символом с. |
strpbrk | char *strpbrk(char *strl, char *str2). Ищет в строке strl первое появление любого из множества символов, входящих в строку str2. |
strrchr | char *strrchr(char *"tr, int с). Ищет в строке str последнее вхождение символа с. |
strset | int strset(char *str, int с). Заполняет строку str заданным символом с. |
strspn | int strspn(char *strl, char *str2). Определяет длину первого сегмента строки strl, содержащего только символы, из множества символов строки str2. |
strstr | char *strstr(const char *strl, const char *str2). Ищет в строке strl подстроки str2. Возвращает указатель на тот элемент в строке strl, с которого начинается подстрока str2. |
strtod | double *strtod(const char *str, char **endptr). Преобразует символьную строку str в число двойной точности. Если endptr не равен NULL, то *endptr возвращается как указатель на символ, при достижении которого прекращено чтение строки str. |
strtok | char *strtok(char *strl, const char *str2). Ищет в строке strl лексемы, выделенные символами из второй строки. |
strtol | long *sfcrtol(const char *str, char **endptr, int baz). Преобразует символьную строку str к значению "длинное число" с основанием baz (2 < baz < 36). Если endptr не равен NULL, то *endptr возвращается как указатель на символ, при достижении которого прекращено чтение строки str. |
strupr | char *strupr(char *str). Преобразует буквы нижнего регистра в строке str в буквы верхнего регистра. |
ultoa | char *ultoa(unsigned long v, char *str, int baz). Преобразует беззнаковое длинное целое v в строку str. |
Таблица П3.5 Функция для выделения и освобождения памяти -файлы stdlib. h, alloc. h
Функция | Прототип и краткое описание действии |
calloc | void *calloc(unsigned n, unsigned m). Возвращает указатель на начало области динамически распределенной памяти для размещения n элементов по а байт каждый. При неудачном завершении возвращает значение NULL. |
coreleft | unsigned coreleft (void); - для моделей памяти tiny, small, medium. unsigned long coreleft (void);-для других моделей памяти.Возвращает значение объема неиспользованной памяти, функция уникальная для DOS, где приняты упомянутые модели памяти. |
free | void free(void *b1). Освобождает ранее выделенный блок динамически распределяемой памяти с адресом первого байта b1. |
malloc | void *malloc(unsigned s). Возвращает указатель на блок динамически распределяемой памяти длиной s байт. При неудачном завершении возвращает значение NULL. |
realloc | void *realloc(void *bl, unsigned ns). Изменяет размер ранее выделенной динамической памяти с адресом начала b1 до размера ns байт.Если b1 равен NULL, то функция выполняется как malloc (). |
Таблица П3.6 Функции для работы с терминалом в текстовом режиме - файл conio. h
Функция | Прототип и краткое описание действий |
clreol | void clreol(void). Стирает символы от позиции курсора до конца строки в текстовом окне. |
clrscr | void clrscr(void). Очищает экран. |
cgets | char *cgets(char *str). Выводит на экран строку str. |
cprintf | int cprintf (char *format [, argument, ...]). Выводит форматированную строку в текстовое окно, созданное функцией window (). |
cputs | int cputs(char *str). Считывает в символьный массив str строку с клавиатуры (консоли). |
cscanf | int cscanf (char *format [, address, ...]). Функции ввода-вывода информации, которые используются при работе с терминалом в текстовом режиме |
delline | void delline(void). Удаляет строку в текстовом окне (где находится курсор). |
gotoxy | void gotoxy(int x, int у). Перемещает курсор в позицию текстового окна с координатами (x, у). |
highvideo | void highvideo(void). Повышает яркость символов, выводимых после нее на экран. |
move text | int move text(int x0,int y0,int xl,int y2,int x.int y). Переносит текстовое окно в область экрана, правый верхний угол которой имеет координаты (x, у). Координаты угловых точек окна - (х0, у0), (х1, у1). |
normvideo | void normvideo(void). Устанавливает нормальную яркость выводимых на экран символов. |
textattr | void textattr(int newattr). Устанавливает атрибуты (фон, цвет) символов, выводимых на экран. |
textbackground | void textbackground(int с). Устанавливает цвет фона по значению параметра с. |
textcolor | void textcolor(int с). Устанавливает цвет символов по значению параметра с. |
textmode | void textmode(int m). Переводит экран в текстовый режим по значению параметра m. |
wherex | int wherex(void). Возвращает значение горизонтальной координаты курсора. |
wherey | int wherey(void). Возвращает значение вертикальной координаты курсора. |
window | void window(int x0,int y0,int xl,int yl). Создает текстовое окно по координатам угловых точек (х0, у0), (х1, yl). |
Функции из табл. ПЗ.6 поддерживаются только на IBM PC и совместимых с ним компьютерах.
Таблица П3.7 Специальные функции
Функция | Прототип и краткое описание действий | Местонахождение прототипа |
signal | int signal(int sig). Вызывает программный сигнал с номером sig. Используется для обработки исключительных ситуаций в языке Си. | signal.h |
sound | void sound(unsigned f). Вызывает звуковой сигнал с частотой f Гц. | dos.h |
srand | void srand(unsigned seed). Функция инициализации генератора случайных чисел (rand); seed - любое беззнаковое целое число. | stdlib.h |
Графические средства в языке Си++ и в его предшественнике - в языке Си полностью отсутствуют. Все возможности для работы с графикой конкретные реализации предоставляют в виде дополнительных библиотек графических функций. В нескольких местах книги были использованы в иллюстративных целях возможности графического представления объектов (принадлежащих классам, вводимым программистом). В качестве инструмента для работы с графикой была использована графическая библиотека под MS-DOS компиляторов фирмы Borland, так как эти компиляторы наиболее доступны в нашей стране, особенно на маломощных ПЭВМ, и чаще всего используются в учебном процессе. Никаких других причин для выбора именно этой графической библиотеки и этих компиляторов не было. Пояснения по отдельным функциям графической библиотеки даны в основном тексте соответствующих глав. Здесь приводится список библиотечных функций, которые могут быть полезными при самостоятельном решении задач, связанных с графикой. Приводимой информации иногда оказывается недостаточно для безошибочного применения той или иной функции, но возможность получения справок при работе с компилятором в диалоговом режиме обычно позволяет быстро устранить возникающие затруднения.
Для работы с графической библиотекой необходимо включить в программу заголовочный файл graphics .h.
Таблица П4.1 Функции для управления графической системой
Функция | Прототип и краткое описание действий |
Closegraph | void far closegraph(void). Перевод системы в текстовый режим (из графического режима) |
graphdefaults | void far graphdefaults(void). Устанавливает по умолчанию все параметры графической системы (параметры заполнения, палитру, правила выравнивания текста и т.п.) |
_graphfreemem | void far _graphfreemem(void far *ptr, unsigned size). Введение этой функции в программу позволяет программисту отслеживать запросы на освобождение size байт памяти функциями графической библиотеки |
_graphgetmem | void far * far _graphgetmem(unsigned size). Введение этой функции в программу позволяет программисту отслеживать запросы на выделение size байт памяти функциями графической библиотеки |
initgraph | void far initgraph (int far *graphdriver, int far *graphmode, char far *pathtodriver). Перевод системы в графический режим (из текстового режима), инициализация графики |
installuserdriver | int far installuserdriver(char far *name, int huge *detect)(void)). Добавляет новый графический драйвер name (.BGI) в таблицу драйверов BGI (BGI - Borland Graphics Interface) |
installuserfont | int far installuserfont(char far *name). Устанавливает шрифты, содержащиеся в файле name (.CHR) |
registerbgidriver | int registerbgidriver(void (*driver)(void)). Регистрирует драйвер driver, встроенный в текущую выполняемую программу |
registerbgifont | int registerbgifont(void (*font)(void)). Регистрирует шрифт font, встроенный в текущую выполняемую программу |
restorecrtmode | void far restorecrtmode(void). Временный переход в текстовый режим, из которого была вызвана функция initgraph () |
setgraphbufsize | unsigned far setgraphbufsize(unsigned bufsize). Устанавливает размер внутреннего буфера для графических функций |
Таблица П4.2 Функции для установки параметров изображения
Функция | Прототип и краткое описание действий |
setactivepage | void far setactivepage(int page). Устанавливает активной для вывода графики страницу page |
setallpalette | void far setallpalette(struct palettetype fax *palette). Устанавливает все цвета палитры |
setaspectratio | void far setaspectratio(int xasp, int yasp). Устанавливает коэффициент сжатия по координатам х и у |
setbkcolor | void far setbkcolor(int color). Установка цвета фона |
setcolor | void fax setcolor(int color). Установка цвета точки (изображения) |
_setcursortype(прототип содержится в файле соnio.h) | void setcursortype(int cur_t). Устанавливает тип отображения курсора для текстовых режимов |
setfillpattern | void far setfillpattern (char far *upattern, int color). Установка заданного пользователем шаблона закраски экрана или области экрана |
setgraphmode | void far setgraphmode(int mode). Переход к графическому режиму, отличному от установленного функцией initgraph () |
setfillstyle | void fax setfillstyle(int pattern, int color). Установка одного из стандартных шаблонов заполнения экрана или области экрана |
setlinestyle | void far setlinestyle(int linestyle, unsigned upattern, int thickness). Установка толщины и типа изображаемой линии |
setpalette | void far setpalette(int colornum, int color). Устанавливает один из цветов палитры |
setrgbpalette | void far setrgbpalette(int colornum, int red, int green, int blue). Устанавливает цвета для графического адаптера IBM 8514 |
settextjustify | void far settextjustify(int horiz, int vert). Установка правил выравнивания текста при горизонтальном или вертикальном выводе функцией outtext () |
settextstyle | void far settextstyle(int font, int direction, int charsize). Установка стиля (шрифт, размеры символов) текста, выводимого функцией outtext() |
setusercharsize | void far setusercharsize(int multx, int divx, int multy, int divy). Установка размеров символов, выводимых в графическом режиме |
setviewport | void far setviewport(int left, int top, int righ, int bottom, int clip). Установка размеров текущего окна экрана для вывода изображений или текста |
setvisualpage | void far setvisualpage(int pagе). Делает видимой графическую страницу page |
setwritemode | void far setwritemode(int mode). Устанавливает режим вывода линий в графическом режиме |
Таблица П4.3 Функции для получения изображения на экране
Функция | Прототип и краткое описание действий |
arc | void far arc(int x, int у, int stangle, int endangle, int radius). Вычерчивание дуги окружности с центром (x, у) |
bar | void far bar(int left, int top, int right, int bottom). Вычерчивание закрашенного прямоугольника |
bar3d | void far bar3d(int left, int top, int right, int bottom, int depth, int topflag). Вычерчивание закрашенного параллелепипеда |
circle | void far circle(int x, int y, int radius). Вычерчивание окружности с центром (x, у) |
cleardevice | void fax cleardevice(void). Очистка экрана цветом фона |
clearviewport | void far clearviewport(void). Очистка ранее установленного окна графического экрана |
drawpoly | void far drawpoly(int numpoints, int far *polypoints). Вычерчивание контура многоугольника с numpoints вершинами |
ellipse | void far ellipse(int x, int y, int stangle, int endangle, int xradius, int yradius). Вычерчивание дуги эллипса с центром (x, у) |
fillellipse | void far fillellipse(int x, int y, int xradius, int yradius). Вычерчивание эллипса с центром в точке (x, у) и заполнение его установленным ранее шаблоном закраски |
fillpoly | void far fillpoly(int numpoints, int far *polypoints). Вычерчивание закрашенного многоугольника с numpoints вершинами и заполнение его установленным ранее шаблоном закраски |
floodfill | void far floodfill(int x, int y, int border). Заполнение установленным ранее шаблоном закраски ограниченной области экрана, в которую попадает точка с координатами (x, у) |
linе | void far line(int x1, int y1, int x2, int y2). Вычерчивание линии от (x1, y1) до (x2, y2) |
linerel | void far linerel (int dx, int dy). Вычерчивание линии из текущей точки в точку, отстоящую от нее на величину (dx, dy) |
lineto | void far lineto(int x, int y). Проведение линии из текущей точки в точку с абсолютными координатами x, у |
moverel | void far moverel(int dx, int dy). Перемещение указателя позиции из текущей точки в точку, отстоящую от нее на величину (dx, dy) |
moveto | void far moveto(int x, int у). Перемещение указателя позиции из текущей точки в точку с абсолютными координатами x, у |
outtext | void far outtext(char far *textstring). Вывод текстовой строки textstring, начиная с текущей позиции |
outtextxy | void far outtextxy(int x, int у, char far *textstring). Вывод текстовой строки textstring, начиная с точки с координатами x, у |
pieslice | void far pieslica(int x, int у, int stangle, int endangle, int radius); Вычерчивание закрашенного сектора круга с центром в точке (x, у) |
putimage | void far putimage (int left, int top, void far *bitmap, int op). Вывод ранее сохраненного графического изображения в окно экрана с левым верхним углом (laft, top) |
putpixel | void far putpixel (int x, int y, int color). Вычерчивание точки по координатам x, у |
rectangle | void far rectangle(int laft, int top, int right, int bottcom). Вычерчивание прямоугольника с заданными вершинами |
sector | void far sector(int x, int y, int stangle, int endangle, int xradius, int yradius). Вычерчивание сектора эллипса с центром в точке (x, у) и заполнение его установленным ранее шаблоном закраски |
Таблица П4.4 Функции для получения параметров изображения
Функция | Прототип и краткое описание действий |
detectgraph | void far detectgraph(int far *graphdriver, int far *graphmode). Функция возвращает тип вашего графического адаптера graphdriver и режим graphmode с разрешением, максимально возможным для данного адаптера |
getarccoords | void far getarccoord*(struct arccoordstype far *arccoords). Возвращает в структуре arccoords значения координат дуги, построенной при последнем обращении к arc () |
getaspectratio | void far getaspectratio(int far *xasp, int far *yasp). Возвращает коэффициент сжатия (уаsр/хаsр) по координатам x и у |
getbkcolor | int far getbkcolor(void). Возвращает номер текущего цвета фона |
getcolor | int far getcolor(void). Возвращает номер текущего цвета изображения |
getdefaultpalette | struct palattetype *far getdefaultpalette(void). Возвращает указатель на структуру типа palettype, содержащую информацию о палитре (наборе цветов), устанавливаемой по умолчанию функцией initgraph () |
getdrivername | char *far getdrivername(void). Возвращает указатель на строку, содержащую название текущего графического драйвера |
getfillpattern | void far getfillpattern(char far *pattern). Получение кодов, применяемых пользователем для задания шаблона заполнения экрана или его. области |
getfillsettings | void far getfillsettings(struct fillsettingstype far *fillinfo). Возвращает в структуре fillinfo значения параметров заполнения и цвета экрана |
getgraphmode | int far getgraphmode(void). Возвращает номер графического режима |
getimage | void far getimage(int left, int top, int right, int bottom, void far *bitmap). Получение и сохранение в области памяти, на которую указывает bitmap, окна экрана, заданного координатами вершин |
getlinesettings | void far getlinesettings (struct linesettingstype far *lineinfo). Возвращает в структуре lineinfo значения параметров линии |
getmaxcolor | int far getmaxcolor(void). Возвращает наибольший номер цвета, который возможно установить в текущем режиме графического драйвера с помощью функции setcolor () |
getmaxmode | int far getmaxmode(void). Возвращает наибольший номер режима, который возможно установить для текущего графического драйвера |
getmodename | char *far getmodename (int mode_number). Возвращает указатель на строку с названием графического режима mode_number |
getmoderange | void far getmoderange(int graphdriver, int far *lomode, int far *himode). Возвращает диапазон доступных графических режимов для графического драйвера graphdrivr |
getmaxx | int far getmaxx(void). Возвращает целое значение, равное размеру экрана по горизонтали (максимальное значение х) |
getmaxy | int far getmaxy(void). Возвращает целое значение, равное размеру экрана по вертикали (максимальное значение у) |
getpalette | void far getpalette(struct palettetype far *palette). Выдает указатель palеtte на структуру типа palette, содержащую информацию о текущей палитре (наборе цветов) |
getpalettesize | int far getpalettesize(void). Возвращает количество цветов, доступных в текущем графическом режиме |
getpixel | unsigned far getpixel(int х, int у). Возвращает цвет заданной (х, у) точки |
gettextxettings | void far gattextxettings(struct textsettingstype far *texttypeinfo). Возвращает в структуре texttypeinfo значения параметров текста |
getviewsettings | void far getviewaettings (struct viewporttype far *viewport). Возвращает в структуре viewport значения параметров окна экрана |
getx | int far getx(void). Возвращает целое значение координаты х текущей позиции на экране |
gety | int far gety(void). Возвращает целое значение координаты у текущей позиции на экране |
graphresult | int far graphreault(void). Возвращает номер ошибки графической операции (целое число от -15 до -1); значение 0 говорит об отсутствии ошибок |
grapherrormsg | char *far grapherrormsg(int errorcode). Возвращает указатель на строку, содержащую описание ошибки номер errorcode |
imagesize | unsigned far imagesize(int left, int top, int right, int bottom). Возвращает объем буфера, нужного для сохранения графической информации в окне экрана с заданными вершинами |
textbelght | int far textheight(char far *textstring). Возвращает целое значение высоты в пикселах символов из строки textstring |
textwidth | int far textwidth(char far *textstring). Возвращает целое значение ширины строки символов textstring |
О библиотеке классов потокового ввода-вывода подробно говорилось в главе 11. В данном приложении приведены только краткие сведения о компонентных функциях и других средствах, использование которых позволяет реализовать обмен с потоками. Многие из перечисленных ниже функций уже рассмотрены в главе 11.
Там же приведены сведения об иерархии классов в библиотеке. Подробное изучение остальных средств потокового ввода-вывода потребует обращения к документации по конкретному компилятору.
Таблица П5.1 Компонентные функции класса ios
Функция | Прототип и краткое описание действий |
bad | int bad(). При ошибке возвращает ненулевое значение |
bitalloc | static long bitalloc(). Возвращает установку флагов. Полученное значение может быть использовано для очистки, установки или проверки флагов. |
clear | void clear (int =0). Устанавливает состояние потока в нуль. |
eof | int eof(). Возвращает ненулевое значение, если имеет место условие конца файла (EОF). |
fail | int fail (). Возвращает ненулевое значение, если операция обмена с потоком терпит неудачу. |
fill | char fill (). Возвращает текущее значение символа заполнения потока. char fill(char). Заменяет значением параметра символ заполнения потока; возвращает ранее установленное значение символа заполнения. |
flags | long flags(). Возвращает текущее значение флагов форматирования. long flags(long). Устанавливает флаги форматирования по значению параметра; возвращает ранее установленное значение флагов. |
good | int good (). Возвращает ненулевое значение, если не установлен ни один флаг состояния (ошибок нет). |
precision | int precision(). Возвращает текущее значение точности вещественных чисел. int precision(int). Устанавливает точность вещественных чисел по значению параметра; возвращает предыдущее значение. |
rdbuf | streambuf* rdbuf(). Возвращает указатель на буфер (объект класса bufstream), связанный с потоком. |
rdstate | int rdstate(). Возвращает текущее состояние потока. |
setf | long self (long). Устанавливает флаги по значению параметра; возвращает предыдущие значения флагов long self(long_ setbits, long_ field). Сбрасывает те биты состояния, которые отмечены в_ field , затем устанавливает биты по значению_ setbits. |
tie | ostream* tie(). Возвращает указатель на взаимосвязанный (tied) поток. ostream* tie(ostream*). Организует поток, взаимосвязанный с потоком, на который указывает ostream*; возвращает указатель на предыдущий взаимосвязанный поток, если такой есть. |
unself | long unself(long). Очищает биты состояния потока, отмеченные переданным параметром; возвращает предыдущее значение битов. |
width | int width (). Возвращает текущее значение ширины. int width(int). Устанавливает ширину, равной значению переданного параметра; возвращает предыдущее значение. |
Таблица П5.2 Компонентные функции класса istream
Функция | Прототип и краткое описание действий |
gcount | int gcount(). Возвращает число символов, извлеченных из потока последним обращением из прикладной программы. |
get | int get ().
Передает из входного потока в прикладную программу следующий символ или EOF. int get(signed char *,int 1en,char = '\n'); int get (unsigned char * , int len, char = ' \n '). Извлекает из входного потока символы и помещает их в буфер, на начало, которого указывает char *. Передача символов завершается, если прочитано (len -1) байтов, или встретился символ-разделитель (третий параметр в функции), или достигнут конец файла EOF. Завершающий нуль-символ всегда помещается в буфер, обозначая конец принятой строки, разделитель (последний параметр) не переносится в строку. int get(unsigned char&); int get(signed char&). Извлекает из входного потока символ и помещает его в байт, на который указывает параметр char&. int get(streambuf&, char = '\n' ). Извлекает символы из входного потока и помещает их в буфер потока, на который ссылается streambuf. Чтение символов прекращается, если в потоке встретился символ-разделитель (второй параметр). |
getline | istream& getline(signed char *,int,char = '\n' ); istream getline(unsigned char *, int, char = '\n' ). Совпадает с get () с тремя параметрами, но символ-разделитель также помещается в принятую строку символов. |
ignore | istream& ignore(int n = 1,int delim = EОF). Пропускает до n символов входного потока; останавливается, если встретился разделитель (второй параметр), по умолчанию равный EОF. |
peek | int peek (). Извлекает следующий символ из входного потока. |
putback | istream& putback(char). Помещает символ назад во входной поток. |
read | istream& read(signed char *,int); istream& read(unsigned char *,int). Извлекает из входного потока заданное вторым параметром число символов и помещает их в массив, на начало которого указывает первый параметр. |
seekg | istream& seekg(long).
Устанавливает указатель чтения входного потока на абсолютную
позицию, заданную параметром long. istream& seekg(long,seek_dir). Перемещает указатель чтения входного потока на число байтов, заданное первым параметром. Второй параметр задает точку отсчета (0 - начало потока; 1 - текущая позиция потока; 2 - конец потока). |
telig | long telig (). Возвращает текущую позицию указателя чтения входного потока. |
Таблица П5.3 Компонентные функции класса ostream
Функция | Прототип и краткое описание действий |
flush | ostream& flush (). Флэширует внутренний буфер выходного потока. |
put | ostream& put(char). Помещает заданный параметром char символ в выходной поток. |
seekp | ostream& seekp(long). Устанавливает указатель записи выходного потока на абсолютную позицию, заданную параметром long. ostream& seekp(long,seek_dir). Перемещает указатель текущей позиции выходного потока на число байтов, заданное первым параметром. Второй параметр задает точку отсчета (0 - начало; 1 - текущая позиция; 2 - конец потока). |
tellp | long tellp (). Возвращает текущую позицию указателя записи выходного потока. |
write | ostream& write(const signed char *,int n). ostream& write(const unsigned char *,int n). Помещает в выходной поток n символов из массива, на который указывает char *. Нуль-символы включаются в число переносимых символов. |
Таблица П5.4 Флаги класса ios управляющие форматированием ввода/вывода
Константа | Значение | Назначение |
skipws | 0х0001 | Игнорировать пробельные символы при вводе. |
left | 0х0002 | "Прижимать" значение к левой стороне поля. |
right | 0х0004 | "Прижимать" значение к правой стороне поля. |
intermal | 0х0008 | Поместить разделительные символы после знака или основания системы счисления (ОСС). |
dec | 0х0010 | Десятичная система счисления (ОСС = 10). |
oct | 0х0020 | Восьмеричная система счисления (ОСС = 8). |
hex | 0х0040 | Шестнадцатеричная система счисления (ОСС = 16) |
showbase | 0х0080 | Указывать ОСС при выводе. |
showpoint | 0х0100 | Печатать десятичную точку и следующие за ней нули при выводе вещественных чисел. |
uppercase | 0х0200 | Шестнадцатеричные цифры печатать на верхнем регистре. |
showpos | 0х0400 | Добавлять '+' при выводе положительных чисел. |
scientific | 0х0800 | Использовать формат 1. 2345Е2 для вывода вещественных чисел (экспоненциальная или научная нотация). |
fixed | 0х1000 | Использовать формат 123.45 для вывода вещественных чисел (с фиксированной точкой). |
unitbuf | 0х2000 | Флэшировать потоки после операции <<. |
stdio | 0х4000 | Флэшировать stdout, stderr после операции <<. |
Таблица П5.5 Константы класса ios для "очистки" флагов форматирования
Константа | "Сбрасываемые" флаги | Действие |
basefield | ios ::hex, ios::oct, ios::dec |
На основание системы счисления |
floatfield | ios ::fixed, ios::scientific |
На представление вещественных чисел. |
adjustifield | ios ::left, ios::right, ios ::internal |
На выравнивание значений в поле вывода. |
Таблица П5.6 Функции-манипуляторы
Манипулятор | Краткое описание действий |
dec | Устанавливает десятичное основание системы счисления. |
hex | Устанавливает шестнадцатеричное основание системы счисления. |
oct | Устанавливает восьмеричное основание системы счисления. |
ws | При вводе позволяет извлекать из входного потока обобщенные пробельные символы. |
endl | При выводе помещает в поток символ новой строки и флэширует буфер потока. |
ends | При выводе помещает в поток символ конца строки '\0' |
flush | Флэширует буфер потока ostream. |
Таблица П5.7 Параметризованные функции-манипуляторы - файл iomanip. h
Название | Краткое описание действий |
setbase(int = 0) | Устанавливает основание системы счисления (0 - при выводе - десятичное; при вводе - внутреннее представление вводимых цифр соответствует правилам ANSI для языка Си; 8 - восьмеричное; 10 - десятичное; 16 - шестнадцатеричное). |
resetiosflags(long) | Очищает форматные флаги, используя значение параметра. |
setiosflags(long) | Устанавливает форматные флаги, используя значение параметра. |
setfill(int) | Устанавливает символ-заполнитель. |
setprecision(int) | Устанавливает по значению параметра точность представления вещественных чисел. |
setw(int) | Устанавливает по значению параметра ширину поля ввода или вывода. |
Таблица П5.8 Компонентные функции класса filebuf
Функция | Прототип и краткое описание действий |
attach | filebuf* attach(int fd). Связывает с объектом класса filebuf файл с дескриптором fd. Если файл уже открыт, возвращает NULL. |
close | filebuf* с1оse (). Флэширует и закрывает файл. Возвращает ссылку на буфер файла, либо 0 при ошибке. |
fd | int fd(). Возвращает дескриптор открытого файла, связанного с заданным объектом класса filabuf, либо EOF. |
is_rtl_open | int is_rt1_орen(). Возвращает не равное нулю целое число, если с заданным объектом связан открытый файл. |
open | filebuf* open(const char*, int mode, int prot = filebuf::openprot). Открывает файл, на спецификацию которого указывает char*, в режиме mode и присоединяет к нему объект класса filebuf. Третий параметр задает защиту файла. |
Класс буферизации данных в потоках filebuf для упрощения изложения не показан в иерархии классов (см. рис. 11.3). Он является базовым для всех классов ввода-вывода, с которыми мы познакомились, и должен использоваться при создании на их основе новых собственных классов. Среди компонентных функций класса filebuf не показаны виртуальные функции.
Таблица П5.9 Компонентные функции классов ifstream, ofstream, fstream
Функция | Прототип и краткое описание действий |
open | void open(const char*, int mode, int = filebuf::openprot). Открывает файл с буфером, на который указывает первый параметр. Второй параметр - режим использования файла. Третий параметр - защита файла. |
rdbuf | filebuf* rdbuf( ). Возвращает указатель на буфер, связанный с потоком. |
Таблица П5.10 Режимы файла, устанавливаемые параметром mode в фукции орen ()
Обозначение | Значение | Краткое описание действия |
ios::in | 0х01 | Открыть только для чтения (режим по умолчанию устанавливается для потоков класса ifstream). |
ios::out | 0х02 | Открыть только для записи (режим по умолчанию устанавливается для потоков класса oifstream). |
ios::ate | 0х04 | Открыть для записи в конец файла. Если файл не существует - создать его. |
ios::app | 0х08 | Открыть в режиме дополнения. |
ios::trunc | 0х10 | Открыть, уничтожив содержимое файла (устанавливается по умолчанию, если установлен режим out, либо один из режимов ate или арр). |
ios::mocreate | 0х20 | Открыть только существующий файл, если файла не существует - установить состояние ошибки. |
ios:moreplace | 0х40 | Создать и открыть только не существующий файл. Если файл существует - установить состояние ошибки. |
ios:bimarу | 0х80 | Открыть для двоичного обмена. |
Среди дополнительных средств, не входящих в собственно язык Си++, но отмечаемых в проектах стандарта и входящих в конкретные реализации, важное место занимают классы. Наиболее полезные с точки зрения пользователей и разработчиков компиляторов классы входят в библиотеки классов и поставляются вместе с компиляторами. Здесь можно отметить библиотеку классов потокового ввода-вывода, библиотеку контейнерных классов, а также некоторое количество специализированных классов. Библиотека потокового ввода-вывода подробно разобрана в главе 11, а общий список ее компонентных функций дан в Приложении 5.
Контейнерные классы позволяют программисту с минимальными затратами создавать динамические массивы, списки, деревья, очереди, стеки, включающие элементы разных типов. В настоящее время контейнерные классы входят в наиболее передовые реализации компиляторов, но не стандартизованы.
Контейнерные классы заслуживают отдельного тщательного изучения при подготовке профессиональных программистов. Объем настоящего пособия не позволяет рассмотреть их подробно, а бойкое перечисление имен и названий классов ничего читателю не даст. Некоторую информацию о возможностях контейнерных классов можно найти в работе [19]. Однако за подробностями следует обращаться к технической документации по конкретным компиляторам и библиотекам классов.
В стандартные библиотеки компиляторов входят и менее объемные, но не менее полезные для частных применений классы. Остановимся на двух их них.
Класс complex становится доступным в программе после подключения заголовочного файла complex, h. В этом файле содержатся как определения класса complex, так и все операции-функции, необходимые для работы с его объектами, т.е. с комплексными числами, а именно:
В классе complex имеются две формы конструктора объектов:
complex complex ();
complex complex(double real, double imag = 0);
где complex - структура, описанная в файле math.h следующим образом:
struct complex
{ double x, у;
};
x и у - соответственно вещественная и мнимая части комплексного числа.
При использовании первого конструктора создается комплексное число с нулевыми вещественной и мнимой частями (х==0, у==0). Во второй форме можно задавать либо вещественную и мнимую части одновременно, либо только одну вещественную часть комплексного числа. В последнем случае мнимая часть инициализируется нулевым значением.
Примеры:
complex z1(); // х==0, у==0
complex z2(5.0); // х==5.0, у==0
complex z3(5.0,-1.0); // х==5.0, у==-1.0
Таблица П6.1 Компонентные и дружественные функции класса complex
Функция | Прототип и краткое описание действий |
abs | double abs(complex x). Возвращает модуль комплексного числа z |
acos | complex acos(complex z). Возвращает значение арккосинуса комплексного числа z |
arg | double arg(complex z). Возвращает главное значение аргумента комплексного числа z (~p < arg z < p) |
asin | complex asin(complex x). Возвращает значение арксинуса комплексного числа z |
atan | complex atan(complex x). Возвращает значение арктангенса комплексного числа z |
conj | double conj(complex z). Возвращает комплексносопряженное к комплексному числу z |
cos | complex cos(complex z). Возвращает значение косинуса комплексного числа z |
cosh | complex cosh(complex z). Возвращает значение гиперболического косинуса комплексного числа z |
exp | complex exp(complex z). Возвращает значение функции еx комплексного числа z |
imag | double imag(complex z). Возвращает мнимую часть комплексного числа z |
log | complex log(complex z). Возвращает значение натурального логарифма комплексного числа z |
log 10 | complex log10(complex z). Возвращает значение десятичного логарифма комплексного числа z |
norm | double norm(complex z). Возвращает квадрат модуля комплексного числа z |
pow | complex pow(complex x, complex у). Возвращает значение хy комплексных чисел х и у |
polar | complex polar(double mag, double angle). Возвращает комплексное число, имеющее модуль mag и значение аргумента angle |
real | double real(complex z). Возвращает вещественную часть комплексного числа z |
sin | complex sin(complex z). Возвращает значение синуса комплексного числа z |
sinh | complex sinh(complex z). Возвращает значение гиперболического синуса комплексного числа z |
tan | complex tan(complex z). Возвращает значение тангенса комплексного числа z |
tanh | complex tanh(complex z). Возвращает значение гиперболического тангенса комплексного числа z |
Другой полезный класс - string - описывается в заголовочном файле cstring.h. В компиляторе ВС++ 4.5 этот класс содержит 11 форм конструкторов объектов (см. [30]):
string();
Конструктор по умолчанию. Создает строку нулевой длины.
string(const string& s);
Создает строку, совпадающую с полученной по ссылке s.
string(const string& s, size_t start, size_t n = NPOS);
Создает строку, содержащую n байт, начиная с позиции start исходной строки s. Тип size_t определен в заголовочном файле так: typedef unsigned size_t; значение NРОS определено как unsigned (-1), т.е. 32767.
string(const char *cp);
Копирует строку, адресуемую указателем ср (до первого нулевого символа).
string(const char *cp, size_t start, size_t n = NPOS);
Создает строку, содержащую n байт, начиная с позиции start исходной строки ср.
string([un]signed char с);
Создает строку, состоящую из одного символа с.
string([un]signed char с, size_t n = NPOS);
Создает строку, состоящую из n символов с.
string(const TSubString_ FAR &ss);
Создает строку из подстроки ss.
string(HINSTANCE instance, UINT id, int len = 255);
Создает строку в программах для Windows из ресурса.
Класс string замечателен тем, что в нем реализована технология, называемая "копировать при записи" ("copy-on-write"). Это означает, что при создании новых объектов класса string копируется не сама порождающая строка, а лишь указатель на нее. При дальнейших чтениях информации из этого объекта на самом деле выполняются операции не с новой, а с порождающей строкой.
Реальное же выделение памяти для объекта и копирование содержимого исходной строки происходит только в том случае, если в строку нового объекта вносятся изменения.
Таблица П6.2 Компонентные и дружествеииые функции класса string
Функция | Прототип и краткое описание действий |
ansi_to_оеm | void ansi_to_oem(). Конвертирует строку из кодировки ANSI (Windows) в кодировку OEM (MS-DOS) (доступна только при компиляции программ для Windows, в т.ч. в режиме EasyWin) |
append | string& append(const stringf s). string& append(const stringt s, size_ t start, size t n = NPOS); stringt append(const char *cp, size_ t start, sizet n = NPOS); Добавляет к исходной строке соответственно строку s или не более n символов (начиная с символа start) строки s (ср). Все три формы возвращают ссылку на результат |
assign | string& assign(const string& s); string& assign(const stringt s, size_t start, sizet n = NРОS). Меняет содержимое исходной строки на соответственно строку s или n символов (начиная с символа start) из строки s |
compare | int compare{const string& s) int compare(const string& s, size_ t orig, size_ t n = NPOS). Сравнивает исходную строку соответственно со строкой s или n символами строки s. Возвращает целое число, меньшее, большее или равное нулю в зависимости от результата сравнения строк |
contains | int contains(const char *pat) const; int contains(const string& s) const. Возвращает 1, если подстрока pat (s) найдена в исходной строке; в противном случае возвращает 0 |
copy | size_t copy(char *cb, size_t n = NPOS); size_t copy(char *cb, size_t n, sixe_t pos). Копирует не более n символов (начиная с pos) исходной строки в строку сb. Возвращает число скопированных символов string copy() const throw(xalloc). Возвращает копию исходной строки |
c_str | const char *c_str () const. Возвращает указатель (адрес) на исходную строку (или ее копию) |
find | size_ t find(const string& s); size_ t find(const string& s, size_t pos). Возвращает позицию первого вхождения подстроки s в ис ходную строку (начиная с позиции pos исходной строки) size_t find(const TRegexp& pat, size_t i = 0); size_ t find(const TRegexp& pat, size_t *ext, size_t i = 0) const. Возвращает позицию первого вхождения регулярного выражения pat в исходную строку. Если подстрока не найдена - возвращается NPOS |
find_ first_of | size_ t find_ first_of(const string& s) const; size_t find_first_of(const string& s, size_t pos) const. Возвращает первую позицию исходной строки (начиная с пози ции pos), в которой встретился некоторый символ строки s. В случае неуспеха возвращается NPOS |
find_first_not_of | size_t find_first_not_of(const stringt s) const; size_ t find_first_not_ of(const string& s, size_t pos) const. Возвращает первую позицию исходной строки (начиная с пози ции pos), содержащую символ, отсутствующий в строке s. В случае неуспеха возвращается NPOS |
rind_ last_of | size_t find_last_of(const string& s) const; size_ t find_ last_ of(const string& s, size_t pos) const. Аналогична find_first_of, но возвращается последняя позиция |
find_last_not_of | size_t find_last_not_of(const string& s) const; size_t find_last_not_of(const string&s, size_t pos) const. Аналогична find_first_not_of, но возвращается последняя позиция |
get_at | char get_at(size_ t pos) const throw(outofrange). Возвращает символ исходной строки в позиции pos. Если pos > length () -1, порождается исключение outofrange |
get_case_sensitive_fiag | static int get_case_sensitive_flag(). Возвращает 1, если при сравнении строк различаются прописные и строчные буквы, 0 - если нет |
get initial capacity | static unsigned get_ initial_ capacity(). Возвращает количество бант памяти, отведенных под исходную строку (< length () -1) |
get_max_waste | static unsigned get_max_waste(). Возвращает максимальное число байт, которое может быть выделено для строки |
get_paranoid_check | static int get_paranoid_check (). Возвращает 1, если возможна проверка коллизий хеширования; иначе возвращает 0. |
get_resize_increment | static unsigned get_ resize_increment(). Возвращает приращение, изменяющее размер строки. |
get_skipwhitespace_flag | static int get_skipwhitespace_flag(). Возвращает 1, если игнорируются обощенные пробельные символы; иначе возвращает 0. |
hash | unsigned hash() const. Возвращает значение хеширования |
initial_capacity | static size_ t initial_ capacity(size_ t ic = 63). Устанавливает минимальное количество байт, выделяемых для строки по умолчанию |
insert | string& insert(size_t pos, const string& s); string& insert(size_t pos, const string& s, size_t start, size_t n = NPOS). С позиции pos в исходную строку вставляется содержимое строки s (не более n символов строки s, начиная с позиции start). Возвращает ссылку на результат |
is_null | int is_ null() const. Возвращается 1, если исходная строка пуста, и 0 - в противном случае |
length | unsigned length() const. Возвращает число символов в исходной строке |
MaxWaste | static size_t MaxWaste (size_t mw = 63). Установить максимальное число байт, выделяемых для строки. |
oem_to_ansi | void oem_to_ansi(). Конвертирует строку из кодировки OEM (MS-DOS) в кодировку ANSI (Windows) (доступна только при компиляции программ для Windows, в т.ч. в режиме EasyWin) |
prepend | string& prepend(const string& s ); string& prepend(const string& s, size_t start, size_t n = NPOS). string& prepend(const char *cp ); string& prepend(const char *cp, size_t start, size_t n = NPOS). Вставляет в начало исходной строки строку s (ср) (n символов строки s (ср), начиная с позиции start) |
put_at | void put_at(size_t pos, char с) throw(outofrange). Заменяет символ в позиции pos исходной строки символом с. Если pos > length ()-1, порождается исключение outofrange |
read_file | istream& read_ file(istream& is). Считать строку из входного потока is (до символа EOF или NULL) |
read_line | istream& read_ line(istream& is). Считать строку из входного потока is (до символа перевода строки или EOF) |
read_string | istream& read_ string (istream& is). Считать строку из входного потока is (до символа EOF или NULL) |
read_to_delim | istream& read_ to_ delim(istream& is, char delim = '\n'). Считывать строку из входного потока is до тех пор, пока не будет встречен символ delim или EOF (символ-разделитель dalim из потока удаляется) |
read_token | istream& read_ token(istream& is). Считать строку из входного потока is до обобщенного пробела (ведущие пробелы не учитываются) |
rfind | size_ t rfind(const string& s ); size_t rfind(const string& s, size_ t роs). Аналог функции find, но возвращает позицию последнего вхождения подстроки s |
remove | string& remove(size_t pos); string& remove(sirе_t pos, size_t n = NPOS). Удаляет все символы (не более n символов), начиная с позиции pos исходной строки и до ее конца. Возвращает ссылку на строку-результат |
replace | string& replace(size_t pos, size_ t n = NPOS,
const strings s); string& replace(size_t pos, size_ t n1, const string& s, size_t start, size_ t n2). Удаляет из исходной строки не более n (nl) символов и помещает на их место строку s (не более n2 символов из строки s, начиная с позиции start) |
reserve | size_t reserve() const.
Возвращает размер отведенной памяти для размещения
строки void reserve(size_ t ic). Сообщает системе, что строка может занимать более ic байт памяти |
resize | void resize(size_t m). Изменяет размер строки на m символов, отбрасывая лишние либо заполняя пробелами добавленные |
resize_incr ement | static size_ t resize_ increment(size_t ri = 64). Изменяет приращение, используемое для автоматического изменения размера строки |
set_case_s ensitive | static int set_case_sensitive(int tf = 1). Установка различия прописных и строчных букв: 1 - различать, 0 - не различать. Возвращает предыдущую установку |
set_parano id_check | static int set_paranoid_check (int ck = 1). Для поиска строк используется механизм хеширования, так как возможно, что одно и то же хешированиое значение получается при обработке различных строк. Вызов функции с параметром ck = 1 устанавливает заключительную проверку строк с помощью функции strcmp (). Если ck = 0, такая проверка не выполняется |
skip_white space | static int skip_whitespace(int sk = 1). Устанавливается в 1, чтобы игнорировать пробелы после считывания каждой лексемы, иначе устанавливается в 0 |
strip | TSubString strip(StripType s = Trailing, char с = ' ' ). В зависимости от параметра s удаляет символы с в начале, в конце либо с обеих сторон исходной строки |
substr | string substr(size_t pos) const; string substr(size_t pos, size_t n = NPOS) const. Создает строку, содержащую копию (не более n символов), начиная с позиции pos, и до конца строки |
substring | TSubString substring(const char *cp); const TSubString substring(const char *cp) const; TSubString substring(const char *cp, size_t start); TSubString substring(const char *cp, size_t start). Создает объект класса TSubString, включающий копию символов, адресуемых указателем ср (начиная с символа start) |
to_lower | void to_lower (). Переводит все символы исходной строки на нижний регистр |
to_upper | void to_upper(). Переводит все символы исходной строки на верхний регистр |
Литература
УКАЗАТЕЛЬ СИМВОЛОВ
, операция "запятая" 40,46, 50
! операция логического отрицания 32,46
!= операция неравенства 35, 46
# операция препроцессирования17,53
операция замещения параметра
макроса 276
## операция конкатенации лексем
в макросе 277
% операция взятия остатка 34,46
%= операция получения остатка,
совмещенная с присваиванием 37
& операция взятия адреса 32,46
операция И (поразрядная) 34,
46
описание ссылки 215
&& операция И (логическая) 36,46
&= побитовая операция И, совмещенная с присваиванием 37
() операция "вызов функции" 41
описание функции 47
преобразование типов 48
* операция разыменования 32,
46
операция умножения 34,46
определение указателя 44
*= операция умножения, совмещенная с присваиванием 37
+ операция сложения 32, 34
-операция "унарный плюс" 32
++ операция увеличения (инкремент) 32, 46
+= операция сложения, совмещенная с присваиванием 37
операция вычитания 32, 34
операция "унарный минус" 32
- операция уменьшения (декремент) 33, 46
-= операция вычитания, совмещенная с присваиванием 37
-> операция доступа к компонентам структурированного объекта 39, 241, 284,296
->* операция разыменования указателей на компоненты классов 302
операция доступа к компоненту класса по имени объекта 39
.* операция разыменования указателей на компоненты классов 302
... многоточие 52
/ операция деления 34,46
/* комментарий (начало) 8, 174, 266
-/ комментарий (конец) 8, 174, 266
// комментарий (однострочный) 8, 174
/= операция деления, совмещенная с присваиванием 37
: признак поля 258
спецификатор метки 52
:: операция указания области видимости 39,46
операция уточнения области действия 283
:: * описание указателя на компонент класса 300
< операция "меньше, чем" 35,46
<< операция "сдвиг влево" 34,46
<<= операция "сдвиг влево", совмещенная с присваиванием 37
<= операция "меньше или равно"
35,46
= операция присваивания 37,
38,46
= 0 "чистый спецификатор" 365
== операция сравнения на равенство 35,46
> операция "больше, чем" 3,46
>= операция "больше или равно"
35,46
>> операция "сдвиг вправо" 34,
46
>>= операция "сдвиг вправо", совмещенная с присваиванием 37
?: операция условного выражения (условная операция) 42,
46
[] операция индексации 41,46
описание массива 46,47
\ обратный слэш 26
^ операция "симметрическая
разность" (исключающее
ИЛИ) 35,46
*= операция "симметрическая разность", совмещенная с присваиванием 38
подчеркивание (литера) 19
~ подчеркивание в идентификаторе 19,20
() блок (составной оператор) 48
определение класса 281
определение перечисления 24
список инициализаторов 10,
12
| побитовая включающая операция ИЛИ 34,46
| = побитовая включающая операция ИЛИ, совмещенная с присваиванием 38 11
логическая операция ИЛИ
36.46
деструктор 346
операция дополнения до единицы 32,46
0 нуль 32
нулевой указатель 44
\0 нулевая литера 396