КАТЕГОРИИ: Архитектура-(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с
Дата добавления: 2014-01-07; Просмотров: 298; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |