{ double a=2.2222, b=5.5555;
fstream f("A.dat",ios::in|ios::out);
// поєднання режимів in і out
f << a << " " << b << endl; // запис значень у файл
f.seekg(0); // встановити покажчик файлу у початок
double x,y;
f >> x >> y; // читання з файлу
cout << x << " " << y << endl; // виведення на екран
}
Робота з потоками в бінарному режимі
Якщо потік відкривати з параметром mode = ios::binary, тоді можна використати функції запису й читання файлу в бінарному режимі (без форматних перетворень). Наприклад, оголошення
ifstream in("name.dat",ios::binary);
ofstream out("name.dat",ios::binary);
дають можливість використовувати функції in.read(char*, int) і out.write(char*, int), які дозволяють робити читання й запис послідовності байтів у бінарному режимі. Першим параметром є покажчик на буфер, другим – кількість байтів, що копіюються.
RAM-based введення/виведення за допомогою потоків
RAM-based введення/виведеня - це виведення інформації в буферну область і введення з неї за умови, що буферна область розміщена в оперативній пам'яті. Тобто поток у даному випадку асоціюється з певною областю оперативної пам’яті. Для виконання таких операцій передбачені класи ostrstream, istrstream і strstream, опис яких розміщено у файлі strstream.h. Зовнішньо робота з такими потоками схожа на роботу зі звичайними файловими потоками, але замість файла працює деяка область оперативної пам’яті. Нижче приводиться приклад створення потоку f для виконання операцій запису й читання значень типу double у текстовому форматі із застосуванням буфера, що представляє собою символьний масив.
// Приклад 7
#include <syst.h>
#include <strstream.h>