ВЫПОЛНЕНИЕ ОПЕРАЦИЙ ЧТЕНИЯ И ЗАПИСИ
Все программы, представленные в данном уроке, выполняли файловые операции над символьными строками. По мере усложнения ваших программ, возможно, вам понадобится читать и писать массивы и структуры. Для этого ваши программы могут использовать функции read и write. При использовании функций read и write вы должны указать буфер данных, в который данные будут читаться или из которого они будут записываться, а также длину буфера в байтах, как показано ниже:
input_file.read(buffer, sizeof(buffer)) ;
output_file.write(buffer, sizeof(buffer));
Например, следующая программа STRU_OUT.CPP использует функцию write для вывода содержимого структуры в файл EMPLOYEE.DAT:
#include iostream.h
#include fstream.h
void main(void)
{
struct employee
{
char name[64];
int age;
float salary;
} worker = { "Джон Дой", 33, 25000.0 };
ofstream emp_file("EMPLOYEE.DAT") ;
emp_file.write((char *) worker, sizeof(employee));
}
Функция write обычно получает указатель на символьную строку. Символы (char *) представляют собой оператор приведения типов, который информирует компилятор, что вы передаете указатель на другой тип. Подобным образом следующая программа STRU_IN.CPP использует метод read для чтения из файла информации о служащем:
#include iostream.h
#include fstream.h
void main(void)
{
struct employee
{
char name [6 4] ;
int age;
float salary;
} worker = { "Джон Дой", 33, 25000.0 };
ifstream emp_file("EMPLOYEE.DAT");
emp_file.read((char *) worker, sizeof(employee));
cout worker.name endl;
cout worker.age endl;
cout worker.salary endl;
}