- •Предисловие
- •Введение
- •Введение в программирование
- •1.1. Предисловие к курсу
- •1.2. Идеология языка
- •1.3. Обзор среды Microsoft Developer Studio
- •1.4. Жизненный цикл программного обеспечения
- •1.5. Общая структура программы
- •1.6. Директивы препроцессора
- •1.7. Построение исполняемого файла
- •1.8. Строительные блоки программы
- •Контрольные вопросы
- •Типы данных. Переменные. Массивы. Операции и Указатели
- •Стандартные типы и размеры данных
- •2.1.1. Объявление переменных
- •Управляющие символьные константы
- •2.2. Объявление указателя
- •2.2.1. Операции разыменования и взятия адреса
- •2.2.2. Указатели на указатели
- •2.2.3. Арифметические операции с указателями
- •2.3. Массивы
- •2.3.1. Инициализация массивов
- •2.3.2 Динамические массивы
- •2.3.3. Методы доступа к элементам массивов
- •2.3.4. Массивы указателей
- •2.4. Строки
- •2.5. Операции
- •2.5.1. Арифметические операции
- •Арифметические операции
- •2.5.2 Операции сравнения и логические операции
- •Операции сравнения и логические операции
- •2.5.3. Побитовые операции
- •Побитовые операции
- •Контрольные вопросы
- •3.1. Базовые операторы
- •3.1.1. Оператор выражение
- •3.2.2. Оператор switch
- •3.3.4. Оператор goto
- •3.4. Операторы цикла
- •3.4.1. Оператор for
- •3.4.2. Оператор while
- •3.4.3. Оператор do..While
- •Контрольные вопросы
- •Стандартный ввод/вывод. Работа с файлами.
- •4.1. Роль стандартного ввода/вывода
- •4.1.1. Основные функции стандартного ввода/вывода
- •4.2. Понятие файла
- •4.2.1. Строение файлов
- •4.2.2. Порядок работы с файлом
- •4.2.3. Обзор библиотечных функций с для работы с файлами
- •4.3. Программные конструкции при работе с файлами
- •4.3.1. Открытие/закрытие файла
- •4.3.2. Цикл посимвольного чтения содержимого файла
- •4.3.3. Цикл построчного чтения содержимого файла
- •Контрольные вопросы
- •Функция. Пользовательские типы данных.
- •5.1. Понятие функции
- •5.1.1. Определение функции
- •5.1.2. Формальные параметры
- •5.1.3. Тип возвращаемого значения
- •5.1.4. Тело функции
- •5.1.5. Фактические параметры
- •5.1.6. Рекурсивные вызовы
- •5.1.7. Передача параметров
- •5.1.8. Библиотеки стандартных функций
- •5.2. Пользовательские типы данных.
- •5.2.1. Ключевое слово typedef
- •5.2.2. Перечислимый тип данных
- •5.2.3. Понятие структуры
- •5.2.4. Указатели на структурный объект
- •Контрольные вопросы
- •Работа с динамической памятью. Динамические структуры данных
- •6.1. Работа с динамической памятью
- •6.1.1. Статическое и динамическое распределение памяти
- •6.1.2. Основные принципы динамического распределения
- •6.1.3. Способы работы с динамической памятью
- •6.2. Динамические структуры данных
- •6.2.1. Стек
- •6.2.2.Линейный список
- •Контрольные вопросы
- •Объектно-ориентированное программирование
- •7.1. Критерии качества декомпозиции проекта
- •7.2. Новые концепции программирования
- •7.3. Достоинства ооп
- •7.4. Объекты и классы в ооп
- •7.4.1. Определение класса
- •7.4.2. Использование класса
- •7.4.3. Вложенные классы
- •Контрольные вопросы
- •Конструкторы и Перегрузка операций.
- •8.1. Перегрузка операций
- •8.1.1. Перегрузка операций внешними функциями
- •8.1.2. Перегрузка операций методами класса
- •8.2. Конструкторы и деструктор
- •8.2.1. Конструкторы и параметры
- •Контрольные вопросы
- •9.1. Простое открытое наследование
- •9.1.1 Конструкторы и деструкторы при наследовании
- •9.1.2. Поля и методы при наследовании
- •9.1.3. Вложенные классы и наследование
- •9.1.4. Закрытое наследование
- •9.1.5. Виртуальные функции
- •9.1.6. Чистые виртуальные функции и абстрактные классы
- •9.3. Основы программирования под Windows
- •9.3.1. Типы данных в Windows
- •9.4. Cреда Microsoft Developer Studio
- •9.4.1. Библиотека mfc
- •9.4.2. Архитектура приложения
- •9.4.3. Каркас приложения
- •9.4.4. Проект приложения
- •Контрольные вопросы
- •Заключение
- •Список Литературы
5.1.8. Библиотеки стандартных функций
В данном разделе представлены не все стандартные функции. Полный список основных функций можно найти в любом справочнике по С++.
Функции ввода-вывода языка С++:
Функция clearerr
#include <cstdio.h>
void clearerr (file *stream);
Функция clearerr () сбрасывает флаг ошибки, связанный с потоком, на который ссылается указатель stream, а также обнуляет индикатор конца файла.
Функция fclose
#include <cstdio.h>
int fclose (file *stream);
Функция fclose () закрывает файл, связанный с указателем stream, и очищает буфер. После выполнения функции fclose () указатель stream больше не связан с файлом, и любой автоматически размещенный в памяти буфер удаляется из нее.
Функция feof
#include <cstdio.h>
int feof (file *stream);
Функция feof () проверяет позицию файлового курсора, чтобы распознать конец файла, связанного с указателем stream. Если курсор находится в конце файла, возвращается ненулевое значение, в противном случае возвращается нуль.
Функция ferror
#include <cstdio.h>
int ferror (file *stream);
Функция ferror() анализирует ошибку, связанную с файлом, на который ссылается указатель stream. Если никаких ошибок не обнаружено, возвращается нуль, в противном случае возвращается ненулевое значение.
Функция fflush
#include <cstdio.h>
int fflush (file *stream);
Если указатель stream связан с файлом, открытым для записи, вызов функции fflush () принудительно записывает содержание буфера в файл, который остается открытым.
Функция fgetc
#include <cstdio.h>
int fgetc (file *stream);
Функция fgetc () извлекает из входного потока stream следующий символ и увеличивает файловый курсор на единицу. Символ считывается, как значение типа unsigned char, и преобразуется в целое число.
Функция fgetpos
#include <cstdio.h>
int fgetpos (file *stream, fops_t *position);
Функция fgetpos () сохраняет в объекте, на который ссылается указатель position, текущее значение файлового курсора. Объект, на который ссылается указатель position, должен иметь тип fops_t. Сохраняемое значение оказывается полезным, лишь если в дальнейшем вызывается функция fsetpos ().
Функция fopen
#include <cstdio.h>
file *fopen (const char *fname, const char *mode);
Функция fopen () открывает файл, имя которого задается параметром fname, и возвращает указатель на поток, связанный с этим файлом.
Функция fwrite
#include <cstdio.h>
size_t fwrite (const void *buf, size_t size, size_t count, file *stream);
Функция fwrite () записывает в поток stream массив, состоящий из count
Функция fprintf
#include <cstdio.h>
int fprintf (file *stream, const char *format,…);
Функция fprintf () выводит в поток, связанный с указателем stream, значения своих аргументов в соответствии со строкой format. Функция возвращает количество реально выделенных символов. При возникновении ошибки возвращается отрицательное число.
Функция freopen
#include <cstdio.h>
file *freopen (const char *fname, const char *mode, file *stream);
Функция freopen () связывает существующий поток с другим файлом. Имя нового файла задается параметром fname, режим доступа – mode, а перенаправляемый поток – указателем stream. Параметр mode принимает те же значения, что и функции fopen ().
Функция fprint
#include <cstdio.h>
int fprint (const char *format,…);
Функция fprint () записывает в поток stdout свои аргументы в соответствии с форматной строкой format.
Функция remove
#include <cstdio.h>
int remove (const char *fname);
Функция remove () стирает файл, заданный параметром fname. Если файл успешно удален, функция возвращает нуль, в противном случае возвращает ненулевое значение. Зависимая функция: rename ().
Функция rename
#include <cstdio.h>
int rename (const char *oldname, const char *newname);
Функция rename () меняет имя файла, заданного указателем oldname, на имя, заданное параметром newname. Указатель newname не должен ссылаться ни на один из существующих файлов в текущем каталоге.
Математические функции, входящие в состав стандартной библиотеки, разделяются на следующие категории:
- тригонометрические;
- гиперболические;
- экспоненциальные и логарифмические;
- другие.
Для всех математических функций необходим заголовок <cmath>. (В программах на языке С используется заголовочный файл math.h).
Функция acos
#include <cmath>
float acos (float arg);
double acos (double arg);
long double acos (long double arg);
Функция acos () возвращает арккосинус аргумента arg. Значение аргумента функции acos () должно лежать в интервале от -1 до 1, иначе произойдет ошибка.
Функция asin
#include <cmath>
float asin (float arg);
double asin (double arg);
long double asin (long double arg);
Функция asin () возвращает арксинус аргумента arg. Значение аргумента функции asin () должно лежать в интервале от -1 до 1, иначе произойдет ошибка.
Функция atan
#include <cmath>
float atan (float arg);
double atan (double arg);
long double atan (long double arg);
Функция atan () возвращает арктангенс аргумента arg.
Функция cos
#include <cmath>
float cos (float arg);
double cos (double arg);
long double cos (long double arg);
Функция cos () возвращает косинус аргумента arg. Значение аргумента должно быть выражено в радианах.
Функция exp
#include <cmath>
float exp (float arg);
double exp (double arg);
long double exp (long double arg);
Функция exp () возвращает основание натурального логарифма е, возведенное в степень arg.
Функция fmod
#include <cmath>
float fmod (float x, float y);
double fmod (double x, double y);
long double fmod (long double x, long double y);
Функция fmod () возвращает остаток от деления x/y.
Функция log
#include <cmath>
float log (float num);
double log (double num);
long double log (long double num);
Функция log () возвращает натуральный логарифм числа num.
Функция sin
#include <cmath>
float sin (float arg);
double sin (double arg);
long double sin (long double arg);
Функция sin () возвращает синус аргумента arg. Значение аргумента должно быть выражено в радианах.
Функция tan
#include <cmath>
float tan (float arg);
double tan (double arg);
long double tan (long double arg);
Функция tan () возвращает тангенс аргумента arg. Значение аргумента должно быть выражено в радианах.
Функция sqrt
#include <cmath>
float sqrt (float num);
double sqrt (double num);
long double sqrt (long double num);
Функция sqrt () возвращает квадратный корень num. Если значение аргумента num отрицательно, возникает ошибка, связанная с выходом из области определения функции.
В стандартной библиотеке содержатся несколько функций, предназначенных для работы со временем и датой.
Функция asctime
#include <ctime>
char *asctime (const struct tm *ptr);
Функция asctime () возвращает указатель на строку, содержащую информацию, хранящуюся в структуре, на которую ссылается указатель ptr. Строка преобразуется следующим образом.
День месяц дата часы: минуты: секунды год \n \0.
Функция clock
#include <ctime>
clock_t clock (void);
Функция clock () возвращает приблизительное время работы вызывающей программы.
Функция ctime
#include <ctime>
char *ctime (const time_t *time);
Получив указатель на строку, содержащую календарное время, функция ctime () возвращает указатель на строку, имеющую следующий вид.
День месяц дата часы: минуты: секунды год \n \0.
Функция time
#include <ctime>
time_t time (time_t * time);
Функция time () возвращает текущее календарное время, установленное системой. Если системное время не установлено, функция возвращает число -1.
В стандартной библиотеке определен ряд служебных функций. К ним относятся функции, выполняющие преобразования, обработку списков аргументов, сортировку и поиск, а также генерирующие случайные числа. Многие из этих функций объявлены в заголовке <cstdlib>. (В программах на языке С ему соответствует заголовочный файл stdlib.h).
Функция abort
#include <cstdlib>
void abort (void);
Функция abort () приводит к аварийному завершению.
Функция rand
#include <cstdlib>
int rand (void);
Функция rand () генерирует последовательность псевдослучайных чисел. Каждый раз при вызове функции rand () возвращается целое число из диапазона от нуля до RAND_MAX.
Функция system
#include <cstdlib>
int system (const char *str);
Функция system () передает центральному процессору операционной системы команду, представленную в виде строки str.
Функция exit () не относится к управляющим операторам. Вызов стандартной библиотечной функции exit () приводит к прекращению работы программы и передаче управления операционной системе.
Функция exit () выглядит следующим образом.
void exit (int код_возврата);
Значение переменной код_возврата передается вызывающему процессу, в роли которого чаще всего выступает операционная система.