Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Файли довільного доступу (із випадковим доступом)Содержание книги
Поиск на нашем сайте
Більшість файлів складаються з фіксованого числа записів. Це дозволяє звернутися до будь-якого запису. Якщо файл створюється, записуються в нього дані, а потім необхідно його скорегувати, тобто виконуються операції введення-виведення, тоді необхідно його відкривати, як:
fp.open(“nam.txt”, ios::in | ios::out); if(!fp) ...
Якщо такі ж дії виконуються з бінарним файлом, тоді
fp.open(“nam.txt”,ios::in|ios::out|ios::binary); ... Використання функції seekg(). Ця функція забезпечує зчитування даних, починаючи з будь-якого місця файла. Формат: fs_obj. seekg(long_num, origin); long_num – число байтів у файлі, що Ви хочете пропустити, тобто зчитування даних виконується з заданого місця. Оскільки файли даних мають великий розмір, необхідно оголосити long_num із типом long int. origin – є значенням, що повідомляє С++, звідки необхідно почати пропускати байти, зазначені в long_num. Ця змінна може приймати одне з трьох значень:
Індикатори режиму ios::beg, ios::cur, ios::end визначені в < iostream. h > Приклад 1. Файл читається двічі, перший раз виведення на екран, другий - на принтер.
#include <fstream.h> #include <stdlib.h> #include <stdio.h>
ifstream in_file; ofstream scr; ofstream prn;
Void main() { char in_char; in_file.open(“name.txt”, ios::in); if(!in_file) { cout << “\n * * ERROR * * \n”; exit(0); } scr.open(“CON”, ios::out); while(in_file.get(in_char)) scr << in_char; scr.close();
in_file.seekg(0L, ios::beg); prn.open(“LPT1”, ios::out); while(in_file.get(in_char)) prn << in_char; prn.close(); }
Приклад 2. Замість букв i і q, що займають у тексті файла 9 і 17 позиції, замінити на букву X.
#include <fstream.h> fstream fp;
Void main() { char ch; fp.open(“alph.txt”,ios::in | ios::out); for(ch = ’a’; ch <= ’z’; ch++) fp << ch; fp.seekg(8L, ios::beg); fp << ’X’; fp.seekg(16L, ios::beg); fp << ’X’; fp.close(); }
Файл alph. txt буде виглядати:
abcdefghXjklmnopXrstuvwxyz
Приклад 3. Прочитати файл alph. txt із попереднього прикладу і вивести на екран в зворотнім порядку.
#include <fstream.h> #include <stdlib.h> #include <stdio.h> ifstream fp;
Void main() { int ctr; char inchar; fp.open(“alph.txt”, ios::in); fp.seekg(-1L, ios::end); for(ctr = 0; ctr <= 25; ctr++) { fp >> inchar; fp.seekg(-2L, ios::cur); cout << inchar; } fp.close(); }
Результат:
zyxwvutsrXponmlkjXhgfedcba Використання додаткових функцій роботи з файлами. read(array, count) – зчитує кількість байтів, визначуваних у count в масив array. write(array, count) – записує масив із кількістю даних count у файл. remove(filename) – видаляє файл з ім’ям filename. Приклади програм роботи з файлами Приклад 1. Записати масив у файл ot. txt, прочитати його і вивести на екран.
#include <fstream.h>
Void main() { int i; int mas[10] = {1,20,300,4,50,600,7,80,900,10}; int vix[10]; fstream file; file.open("ot.txt", ios::in|ios::out); for (i = 0; i < 10; i++) file << mas[i] << " "; file.seekg(0L, ios::beg); for (i = 0; i < 10; i++) { file >> vix[i]; cout << vix[i] << " "; } file.close(); }
Приклад 2. Записати масив у файл ot. txt, прочитати елемент масиву з заданим номером і вивести на екран.
#include <fstream.h> #include <iomanip.h>
Void main() { int i, zn_el; long n_el; int mas[10] = {100,200,3,4,5,6,700,8,9,10}; fstream file; file.open("ot.txt", ios::in|ios::out); for (i = 0; i < 10; i++) file << setw(4) << mas[i]; cout << "ВВедіть номер елемента -> "; cin >> n_el; n_el *= 4; file.seekg(n_el, ios::beg); file >> zn_el; cout <<"\n" << zn_el; file.close(); }
Приклад 3. Записати масив у файл ot. txt, прочитати перші п’ять елементів і вивести їх на екран.
#include <fstream.h> #include <iomanip.h>
Void main() { int i; int mas[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; fstream file; file.open("ot.txt", ios::in|ios::out); for (i = 0; i < 10; i++) file << setw(4) << mas[i]; char st[50]; file.seekg(0L, ios::beg); file.read(st, 5*4); for(i = 0; i < 5; i++) { (st+i*4)[4] = 0; cout << (st+i*4+1) << "\n"; } file.close(); }
Приклад 4. Записати масив порядково у файл ot. txt, прочитати і вивести на екран кожний рядок.
#include <fstream.h> #include <iomanip.h>
Void main() { int i; char mas[3][10]={"Сидоров","Петров","Іванов"}; fstream file; file.open("ot.txt", ios::in|ios::out); for (i = 0; i < 3; i++) file << setw(10) << mas[i] << "\n"; char st[20]; file.seekg(0L, ios::beg); for (i = 0; i < 3; i++) { file.getline(st, 20); cout << st << "\n"; } file.close(); }
ТЕМА 10. СТРУКТУРИ ПЛАН 1. Загальна характеристика структури. 2. Масиви структур. 3. Використання масивів, як елементів структур.
|
||||||
|
Последнее изменение этой страницы: 2017-02-10; просмотров: 263; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.156 (0.005 с.) |