Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Запись в файл(лекция).doc
Скачиваний:
6
Добавлен:
11.02.2016
Размер:
532.99 Кб
Скачать

Функції read() та write()

istream &read(unsigned char *buf, int num);

ostream &write(const unsigned char *buf, int num);

Функція read() зчитує num байт з потоку у буфер buf.

Фун­кция write() записує num байт в потік з буферу buf.

Буфер buf представляє собою масив символів, тому для запису будь-яких даних необхідно перетворити до масиву символів.

Якщо кінець файлу досягається до того, як буде зчитано задане число символів, функ­ція read() зупиниться, а у буфері буде знаходитись кількість зчитаних символі. Для визначення кількості зчитаних символів використовують функцію int gcount().

Приклад ілюструє використання цих функцій для запису та зчитування цілого одновимірного масиву:

#include <string.h>

#include <iostream>

#include <fstream>

using namespace std;

int main()

{

int n[5] = {1, 2, 3, 4, 5}; int i;

ofstream Fzap;

//оголошення змінної, пов’язаною з потоком введення

Fzap.open("c:\\priklad.dat", ios::out | ios::binary);

//відкриваємо файл в бінарному режимі для запису даних

if (!Fzap)

{

cout<<"Помилка відкриття файлу "<<endl;

return 0;

}

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

Fzap.write((char *) &n, sizeof(n));

//записуємо змінну n розміром sizeof(n)

Fzap.close();

//зачиняємо файл

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

n[i] = 0;

//очищуємо масив шляхом обнулінням кожного елемента

ifstream Fread;

//оголошення змінної, пов’язаною з потоком виведення

Fread.open("c:\\priklad.dat", ios::in | ios::binary);

//відкриваємо файл в бінарному режимі для зчитування даних

if (!Fread)

{

cout<<"Помилка відкриття файлу "<<endl;

return 0;

}

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

Fread.read((char *) &n, sizeof(n));

//зчитування інформації в змінну n розміром sizeof(n)

Fread.close();

//зачиняємо файл

printf("Зчитаний вектор : ");

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

cout << n[i] << " ";

//виводимо на екран зчитаний масив

return 0;

}

Результат запису у файл

Результат виконання програми

Зчитаний вектор : 1 2 3 4 5

33

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