Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теорія.doc
Скачиваний:
3
Добавлен:
03.11.2018
Размер:
309 Кб
Скачать
☆

Структури

Синтаксис:
struct [ім'я_структури] 
{
       тип1 елемент1;
       тип2 елемент2;
       ........................
       типN елементN;
} [список описів];

Об’явлення typedef
Синтаксис:
struct ім'я_структури
{
       тип1 елемент1;
       тип2 елемент2;
       ........................
       типN елементN;
};
typedef struct ім'я_структури ім'я_типу;
або
typedef struct [ім'я_структури]
{
       тип1 елемент1;
       тип2 елемент2;
       ........................
       типN елементN;
} ім'я_типу;

Бітові поля
Синтаксис:
struct [ім'я_структури] 
{
       тип1 елемент1 : розмір_поля1;
       тип2 елемент2 : розмір_поля2;
       ........................
       типN елементN : розмір_поляN;
} [список описів];

Об'єднання
Синтаксис :
union [ім'я_об'єднання] 
{
        тип1 елемент1;
        тип2 елемент2;
        ........................
        типN елементN;
} [список описів];


Перераховані константи
Синтаксис :
enum [ ім'я_типу ] { список_констант } [список описів];


Динамічне виділення пам’яті (stdlib.h, alloc.h)

Прототип

Опис

void *calloc(size_t nmemb, size_t size)

Динамічно виділяє пам’ять для масиву розміром nmemb елементів, причому розмір кожного елемента складає size байт.

void *malloc(size_t size)

Динамічно виділяє пам’ять для масиву розміром size байт.

void *realloc(void *block, size_t size)

Змінює розмір об’єкта block на новий розмір size.

void free(void *block)

Звільняє виділену пам’ять об’єкта block.



Файлові потоки 

Структура FILE
typedef struct
{
      short level; /*рівень буферу*/ 
      unsigned flags; /*статус файлу */
      char fd; /*дескриптор файла*/
      char hold; /*попередній символ,якщо немає буферу*/
      short bsize; /*розмір буферу*/
      unsigned char *buffer; /*буфер передавання даних*/
      unsigned char *curp; /*поточний активний покажчик*/
      short token; /*перевірка коректності*/
} FILE;

Функції роботи з файловими потоками (stdio.h)

Прототип

Опис

FILE *fopen(const char *filename, const char *mode)

Відкриває файл із заданим ім'ям filename і зв'язує з ним потік. Аргумент mode вказує режим відкриття файла.

int fgetc(FILE *f)

Зчитує символ з файлового потоку f.

int putc(int ch, FILE *f)

Виводить символ ch у файловий потік f.

char *fgets(char *s,int n, FILE *stream)

Зчитує n символів з файлового потоку stream в стрічку s.

int fputs(const char *,s FILE *stream)

Виводить стрічку s у файловий потік stream.

int fscanf(FILE *stream, const char *format[, address, …])

Виконує форматоване зчитування даних з файлового потоку stream. При успішному читанні fscanf повертає кількість прочитаних полів.

int fprintf(FILE *stream, const char *format[,argument,…])

Виконує форматоване виведення у файловий потік stream.

int feof(FILE *stream)

Тестує, чи потік stream досягнув кінця файлу.

int fclose(FILE *stream)

Закриває файловий потік stream.

size_t fwrite(const void *ptr, size_t size, size_t n, FILE*stream)

size_t fread(void *ptr, size_t size, size_t n, FILE *stream)

long ftell(FILE *stream)

Повертає поточну позицію покажчика позиції файла stream.

int fseek(FILE *stream, long offset, int whence)

Зміщує покажчик позиції файла stream на число байтів offset від точки відліку, яка визначається параметром whence

void rewind(FILE *stream)

Переміщує покажчик позиції файла на початок файлу.


Значення аргументу mode функції fopen()

"r"

відкриття файлу без дозволу на модифікацію, файл відкривається лише для читання.

"w"

створення нового файлу тільки для запису, якщо файл із вказаним ім'ям вже існує, то він перезапишеться.

"a"

відкриття файлу тільки для додавання інформації в кінець файлу, якщо файл не існує, він створюється.

"r+"

відкриття існуючого файлу для читання та запису.

"w+"

створення нового файлу для читання та запису, якщо файл із вказаним ім'ям вже існує, то він перезаписується.

"a+"

відкриває файл у режимі читання та запису для додавання нової інформації у кінець файлу; якщо файл не існує, він створюється.

До вказаних специфікаторів в кінці або перед символом "+" може додаватися символ "t" (текстовий файл), або "b" (бінарний, двійковий файл).

Можливі значення параметра whence функції fseek

Константа

whence

Точка відліку

SEEK_SET

0

Початок файлу

SEEK_CUR

1

Поточна позиція

SEEK_END

2

Кінець файлу

Дескриптори стандартних потоків введення-виведення

потік

дескриптор

Опис

stdin

0

стандартний вхідний потік

stdout

1

стандартний вихідний потік

stderr

2

стандартний потік повідомлень про помилки

stdaux

3

стандартний потік зовнішнього пристрою

stdprn

4

стандартний потік виведення на принтер