Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ГОС_ответы.doc
Скачиваний:
43
Добавлен:
27.10.2018
Размер:
21.59 Mб
Скачать

Int fprintf(file *fp, char *format [,аргумент]…);

Эта функция выводит данные с преобразованием по формату в открытый поток fp, связанный с файлом. В случае успеха возвращает число выведенных байтов, а в случае ошибки или достижения конца файла – EOF.

Пример. Запись чисел и массива чисел в открытый файл

int a=5; float b=3.56; long c=50000;

fprintf(fp,”%d %f %ld\n”,a,b,c); //запись чисел в файл через поток fp

int arr[5]={1,2,3,4,5}; float mas[5]={1.1,2.2,3.3,4.4,5.5};

for (int i=0;i<5;i++)

fprintf(fp,”%d %f\n”,arr[i],mas[i]);//запись чисел типа в поток fp

Функция форматированного ввода (чтения) из файла имеет прототип:

Int fscanf(file *fp, char *format [,указатель]…);

Эта функция выполняет ввод из открытого файла данных с преобразованием по формату, занесение их в ячейки памяти, определяемые указателями. В случае успеха возвращает число обработанных при вводе полей, или EOF (–1) в случае ошибки или достижения конца файла.

Пример. Чтение чисел и массива чисел из открытого файла

Int n; float f; long l; int a[5]; float m[5];

fscanf (fp,”%d %f %ld\n”,&n,&f,&l);//чтение чисел из файла через поток

for (int i=0;i<5;i++)

fscanf (fp,”%d %f\n”,&a[i],&m[i]);// чтение исел из файл через поток

Блоковый ввод данных в файл и вывод данных из файла

Эти функции предназначены для ввода-вывода блоков байт, где под блоком байт подразумевают группу рядом расположенных байт, между которых нет никаких специальных разделителей. Блоковый ввод-вывод обычно выполняют в бинарном режиме

Функция блокового вывода (записи) в файл имеет прототип:

Int fwrite(void *ptr, int size, int n, file *fp);

Эта функция записывает через поток fp в открытый файл n блоков, размером size байт каждый, из области памяти, определяемой указателем ptr. В случае успеха возвращает число блоков (не байтов!), а в случае ошибки или достижения конца файла – EOF.

Пример. Запись блока и массива блоков данных в открытый файл через поток stream

struct REC {int a; float b[3];};

REC str1={1,2.2,3.3,4.4};

fwrite (&str1,sizeof(REC),1, stream);

REC str2[3]={{1,1.2,1.3,1.4},{2,2.2,2.3,2.4},{2,2.2,2.3,2.4}};

fwrite (str2,sizeof(REC),3, stream);

Функция блокового ввода (чтения) из файла имеет прототип:

Int fread(void *ptr,int size,int n,file *fp);

Эта функция считывает через поток fp из открытого файла n блоков, размером size байт каждый, в область памяти, определяемой указателем ptr. В случае успеха возвращает число блоков, а в случае ошибки или достижения конца файла – EOF.

Пример. Запись блока и массива блоков данных в открытый файл через поток stream для ввода (чтения) данных в двоичном режиме

struct REC {int a; float b[3];};

REC str3, str4[3];

fread(&str3,sizeof(REC),1, stream);

fread (str4,sizeof(REC),3, stream);

16 Ооп. Визначення класу. Компоненти класу. Спеціфікатори доступу до компонентів класу. Різниця між методами класу, визначеними в класі та поза межами класу.

Основой языка С++ является понятие класса.

Класс – это производный структурированный тип, позволяющий задать некоторую структурированную совокупность данных и определить набор операций над этими данными.

Класс в языке С++ определяется конструкцией:

ключ_класса имя_класса {список_компонентов};

где ключ_класса – одно из зарезервированных слов: class, struct, union; имя_класса – идентификатор; список_компонентов – определения и описания типизированных данных и принадлежащих классу функций.

Компонентами класса могут быть переменные, функции, классы.

Различают заголовок класса и тело класса, которое заключается в фигурные скобки.

Функции класса называют членами-функциями, компонентными функциями, методами.

Напишем простейший класс:

struct complex{

double real;

double imag;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]