Многофайловый проект. Библиотеки стандартных и нестандартных функций.
Включение файла: #include
Перечень обозначений заголовочных файлов для работы с библиотеками компиляторов утвержден стандартом языка. Ниже приведены названия этих файлов, а также краткие сведения о тех описаниях и определениях, которые в них включены. Большинство описаний - прототипы стандартных функций, а определены в основном константы, например EOF, необходимые для работы с библиотечными функциями.
assert.h - диагностика программ
errno.h - проверка ошибок
limits.h - предельные значения целочисленных данных
locale.h - поддержка национальной среды
math.h - математические вычисления
signal.h - обработка исключительных ситуаций
stddef.h - дополнительные определения
stdio.h - средства ввода-вывода
stdlib.h - функции общего назначения (работа с памятью)
string.h - работа со строками символов
time.h - определение дат и времени
В конкретных реализациях количество и наименование заголовочных файлов могут быть и другими. Например, в компиляторах для MS-DOS активно используются заголовочные файлы mem.h, alloc.h, conio.h, dos.h и другие. В компиляторах Turbo C, Borland C++ для связи с графической библиотекой применяется заголовочный файл graphics.h.
Стандартные библиотечные функции
Библиотека языка Си содержит множество функций и макроопределений. Библиотеки меняются от системы к системе, но есть ядро функций (стандартная библиотека).
Эти функции используются для:
• манипулирования данными, их преобразования и шифрования;
• определения пользователями функций с переменным числом аргументов;
• динамического управления памятью ;
• представления показаний системных часов в стандартных форматах даты и времени;
• получения системной информации.
Современные программные проекты редко ограничиваются одним исходным файлом. Распределение исходного кода программы на несколько файлов имеет ряд существенных преимуществ перед однофайловыми проектами.
· Использование нескольких исходных файлов накладывает на репозиторий (рабочий каталог проекта) определенную логическую структуру. Такой код легче читать и модернизировать.
· В однофайловых проектах любая модернизация исходного кода влечет повторную компиляцию всего проекта. В многофайловых проектах, напротив, достаточно откомпилировать только измененный файл, чтобы обновить проект. Это экономит массу времени.
· Многофайловые проекты позволяют реализовывать одну программу на разных языках программирования.
· Многофайловые проекты позволяют применять к различным частям программы разные лицензионные соглашения.
Принципы создания текстового меню. Примеры.
Файловый ввод-вывод в Си.
Потоковая функция или макрокоманда | Назначение |
fopen | Открывает поток для чтения и (или) записи |
fclose | Закрывает поток |
fread | Читает блок данных из потока |
fgets | Читает строку текста из потока |
fscanf | Читает форматированные данные из потока |
fwrite | Записывает блок данных в поток |
fputs | Записывает строку текста в поток |
fprintf | Записывает форматированные данные в поток |
fseek | Перемещает указатель чтения или записи в потоке |
ftell | Возвращает текущую позицию в потоке, начиная с которой будет выполнена следующая операция чтения или записи. Возвращаемое значение - это количество байтов смещения относительно начала потока |
freopen | Повторно использует указатель потока для ссылки на новый файл |
fdopen | Открывает потоковый файл с указанным дескриптором |
feof | Макрокоманда, которая возвращает ненулевое значение, если в данном потоке обнаружен символ конца файла, в противном случае - нулевое значение |
ferror | Макрокоманда, которая возвращает ненулевое значение, если в данном потоке была обнаружена ошибка или символ конца файла, в противном случае - нулевое значение |
clearer | Макрокоманда, которая сбрасывает флаг наличия ошибок в данном потоке |
fileno | Макрокоманда, которая возвращает дескриптор данного потокового файла |
Функцией fopen( ) управляют три основных параметра. Первый - имя файла, который следует открыть. Он является и первым аргументом fopen( ). В нашем примере это " File ". Второй параметр описывает, как должен использоваться файл:
" r " - файл нужно считать,
" w " - файл нужно записать,
" a " - файл нужно дополнить.
" w+ " - новый текстовый файл открывается для записи и последующих многократных исправлений. Если файл уже существует, то предыдущее содержимое стирается. Последующие после открытия файла запись и чтение из него допустимы в любом месте файла, в том числе запись разрешена и в конце файла, т.е. файл может увеличиваться.
" r+ " - существующий текстовый файл открывается как для чтения, так и для записи в любом месте файла ; однако в этом режиме невозможна запись в конец файла, то есть недопустимо увеличение размеров файла.
" a+ " - текстовый файл открывается или создается, если файла нет, и становится доступным для изменений, т.е. для записи и для чтения в любом месте; при этом в отличие от режима " w+ "можно открыть существующий файл и не уничтожать его содержимое; в отличие от режима " r+ " в режиме " a+ " можно вести запись в конец файла, то есть увеличивать его размеры.