Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Попов 45-67-13

Функции write() и read() удобно использовать при организации прямого доступа к данным в файле. Но для этого необходимы также функции – члены, которые позволяют перемещать указатель потока в любое место файла. Эти функции имеют вид:

ip.seekp(n,dir);

ip.seekg(n,dir);.

Первая из них используется при записи данных в файл, а вторая – при их чтении.

Здесь n – параметр, который указывает количество байтов, на которое необходимо переместить указатель потока;

dir – направление перемещения указателя (необязательный параметр). Он может принимать одно из значений:

ios::beg — от начала файла;

ios::cur — от текущей позиции;

ios::end — от конца файла.

Если этот параметр не записан, перемещение указателя осуществляется с начала файла.

Рассмотрим программу, в которой используются методы прямого доступа.

Пример 7.7. Запишем в файл числовую матрицу размерностью 3х5, затем, пользуясь средствами прямого доступа, прочитаем из файла сначала вторую строку, а затем первую.

#include<iostream.h>

#include<fstream.h>

#include<iomanip.h>

const int n=3,m=5;

void main()

{ int i,j,mas[m];

char fname[]="matr.dat";

ofstream fout(fname,ios::binary);

if(!fout)cout<<"Cannot open file\n";

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

{ cout<<"Enter "<<i<<"stroku\n";

for(j=0;j<m;j++)

cin>>mas[j];

fout.write((char*)&mas,sizeof(mas)); }

fout.close();

ifstream fin(fname,ios::binary);

if(!fin)cout<<"Cannot open file for reading\n";

fin.seekg(1*sizeof(mas));

cout<<"Vivod 2 i 1 strok matrix\n\n";

fin.read((char*)&mas,sizeof(mas));

for (j=0;j<m;j++)

cout<<setw(3)<<mas[j];

cout<<endl;

fin.seekg(0);

fin.read((char*)&mas,sizeof(mas));

for(j=0;j<m;j++)

cout<<setw(3)<<mas[j];

cout<<endl;

fin.close();

cin>>i;

}

Результат работы прогаммы:

Enter 0 stroku

12 3 4 15 0

Enter 1 stroku

5 6 17 8 10

Enter 2 stroku

11 45 9 46 3

Vivod 2 i 1 strok matrix

5 6 17 8 10

12 3 4 15 0

 

7.3 Контрольные вопросы

 

1. Чем файл отличается от массива? Каное основное назначение файлов?

2. Дайте определение файлу и потоку.

3. Какие операции необходимо выполнить при работе с файлом данных?

4. Назовите способы создания потоков и открытия файлов.

5. Какие данные можно записывать в файл?

6. Какие функции используют при организации прямого доступа к данным в файле?

7. Какой порядок создания файла?

 

СПИСОК ЛИТЕРАТУРЫ:

1. Основи програмування мовою С++: Навчальний посібник/ Є.П. Путятін, В.П. Степанов, В.П. Пчелінов, Т.Г. Долженкова, О.О. Матат. – Харків: ТОВ „Компанія СМІТ”, 2005. — 320 с.

2. Керниган Б., Ритчи Д. Язык программирования Си: Пер. с англ. —М.: Финансы и статистика, 1992. — 272 с.

3. Страуструп Б. Язык программирования С++. Часть 1. — Киев: "ДиаСофт", 1993. — 264 с.

4. Страуструп Б. Язык программирования С++. Часть 2. — Киев: "ДиаСофт", 1993. — 296 с.

5. Подбельский В.В. Язык Си+: Учеб. пособие. — М.: БИНОМ, 1995. — 400 с.

6. Глушаков С.В. и др. Язык программирования С++. —Харьков: Фолио, 2002. — 500 с.

7. Х.М.Дейтел, П.Дж. Дейтел Как программировать на С++.- М.:ЗАО «Издательство БИНОМ», 2000 г. — 1024 с.

8. Ван Тассел Д. Стиль, разработка, отладка и испытание программ.-M.:Мир,1985.

9. Проценко В.С. Техніка програмування мовою С.-Навч. Посібник. –К.:Либідь, 1993. — 224с.

10. Жешке Р. Толковый словарь стандарта языка Си: — С.-Петербург: Питер, 1994. — 221с.

11. Язык Си. Книга ответов: Пер. с англ. — М.: Финансы и статистика, 1994. — 160 с.

12. Бондарев В.М. Программирование на С++.- Харьков: «Компания СМИТ», 2004. — 284с

 

<== предыдущая лекция | следующая лекция ==>
Пример 3.2 | Государственное регулирование тарифов на коммунальные услуги
Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 269; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.015 сек.