Язык С++ и программирование на нем. Рейзлин В.И. - 177 стр.

UptoLike

Составители: 

179
доставляет возможность осуществления неформатируемого ввода-
вывода, то есть записи и чтения двоичной информации (иногда говорят
сырых данных). Для осуществления ввода-вывода в двоичном режиме
нужно включить флаг ios::binary в параметр open_mode, передаваемый
конструктору потока или функции open(). Чтение двоичной информа-
ции из файла осуществляется функцией read(), которая имеет следую-
щие прототипы:
istream& read(char* s, int n);
istream& read(unsigned char* s, int n);
Здесь параметр s задает буфер для считывания данных, а пара-
метр n – число читаемых символов.
Запись двоичных данных осуществляет функция-член write():
ostream& write(const char * s, int n);
ostream& write(const unsigned char * s, int n);
Эта функция получает n символов из буфера, адрес которого за-
дан параметром s, и вставляет их в поток вывода. Рассмотрим пример.
#include<iostream.h>
#include<fstream.h>
void main() {
int x = 255;
char str[80] = ”Тестирование двоичного ввода-вывода.”;
// Открываем файл для вывода в двоичном режиме
ofstream ofs(”Test.txt”);
if (!ofs) { cout << Файл не открыт.\n”; return; }
ofs.write((char*)&x, sizeof(int));
ofs.write((char*)&str, sizeof(str));
ofs.close();
// Открываем файл для вывода в двоичном режиме
ifstream ifs(”Test.txt”);
if (!ifs) { cout << ”Файл не открыт.\n”; return; }
ifs.read((char*)&x, sizeof(int));
ifs.read((char*) str, sizeof(str));
cout << x << ‘\n’ << str << ‘\n’;
}
27.7. Часто применяемые функции
Помимо уже описанных функций, библиотека ввода-вывода C++
содержит широкий набор различных функций. Здесь мы приведем лишь