Файлы. Общая концепция организации ввода-вывода данных в С++. Средства класса ios, обеспечивающие точную настройку вывода

Страницы работы

Содержание работы

ЛЕКЦИЯ  18

ФАЙЛЫ

ФАЙЛЫ... 1

Общая концепция организации ввода-вывода данных в С++.. 2

Стандартные потоки. 7

Средства класса ios, обеспечивающие точную настройку вывода. 10

Функция-член flags. 10

Функция-член setf. 12

Функция-член unsetf. 13

Функция-член width. 14

Функция-член fill 14

Функция-член precision. 15

Манипуляторы с параметрами. 16

Манипуляторы без параметров. 16

Функции класса istream для неформатированного чтения  из потока. 17

Функции класса ostream для неформатированного вывода в поток. 18

Общие принципы работы с файлами. 18

Последовательность работы с файлами. 22

1. Создание файла. 22

2. Потоки для работы с файлами. 23

3. Открытие файла и связывание его с файловым потоком.. 23

4. Чтение и запись в файл. 26

5. Закрытие файла. 26

6. Завершение обработки файла. 26

Примеры использования текстовых файлов: 28

1. Вывод в текстовый файл и считывание из него. 28

2. Вывод в текстовый файл и считывание из него последовательности случайных чисел. 29

3. Вывод в текстовый файл и считывание из него строк. 30

4. Вывод в текстовый файл и считывание из него строк. 30

5. Посимвольный ввод-вывод в текстовый файл. 31

6. Ввод-вывод в текстовый файл при задании имени файла в командной строке в качестве параметра функции  main() 32

7. Ввод-вывод в текстовый файл строк с учетом  при обработке вывода в поток невидимых символов. 33

8.  Копирование текстовых файлов. 35

Примеры использования двоичных файлов. 36

1.  Запись в бинарный файл и чтение из него последовательности случайных чисел. 36

2.  Запись в бинарный файл и чтение из него переменных разных типов. 37

3.  Копирование бинарных файлов. 38

4. Использование функция get() для чтения из бинарного файла, имя которого задается в командной строке. 38

5. Дозапись в бинарный файл. 39

6. Оперделение количества записей в бинарном файле и  корректировка записей. 40

Строковые потоки. 41

Входные строковые потоки. 41

Примеры использования входного строкового потока. 41

Выходные строковые потоки. 43

Примеры использования выходного строкового потока. 43

Двунаправленные строковые потоки. 44

Примеры использования двунаправленного строкового потока. 44

Ввод-вывод в стиле С.. 46

В этой теме вам необходимо усвоить:

·  Общую концепцию организации ввода-вывода в С++

·  Общие принципы работы с файлами

·  Последовательный и прямой доступы к файлу

·  Текстовые и бинарные файлы, их структуру и особенности работы с ними

·  Строковые потоки

Общая концепция организации ввода-вывода данных в С++

Данные играют в программировании ключевую роль. Исполнение программы, как правило, начинается с получения извне программы данных для обработки путем запроса и ввода их с клавиатуры, чтения из каких-нибудь специальных устройств, генерации с определенными свойствами, обращения за данными к другим подпрограммам. В процессе работы или по завершении исполнения программы ее результаты должны быть отображены на экране и/или сохранены для последующего использования.

Любой обмен данными подразумевает наличие источника информации, канала передачи и приемника. В С++ реализована концепция ввода-вывода, независимого от устройств. Несмотря на то, что устройства ввода-вывода имеют разные характеристики, система ввода-вывода С++ предоставляет программисту единый удобный интерфейс. Для этого используется абстрактное понятие «поток», относящееся к любому переносу данных от источника к приемнику. Поток – последовательность символов. Программа имеет дело не с устройствами или с файлами, а с потоками. Ввод информации (чтение из потока, извлечение) осуществляется из входного потока, вывод (помещение или включение в поток) программа производит в выходной поток.

Система ввода-вывода С++ состоит как бы из двух уровней: логического и физического.

Физический уровень – это есть либо внешний файл (т.е. именованная область внешней памяти, содержащая какую-либо информацию), либо логическое устройство компьютера, имеющее свое фиксированное имя.

Логический уровень – это «логическое устройство» – поток – структура данных, используемая при программировании, существующая в логическом представлении программиста при написании программы (представляется в программе потоковой переменной определенного типа). После того как в программе создан поток, он может быть использован как средство общения с любым физическим файлом или устройством.

В C++ нет встроенных средств ввода-вывода. Ввод-вывод реализуется либо с помощью типов и функций для организации ввода-вывода, унаследованных из библиотеки языка С, либо с помощью классов С++. В С++ общая концепция организации ввода-вывода данных, принятая в С, сохранена (однако возможности по организации ввода-вывода  существенно расширены). Главным достоинством системы ввода-вывода С++ является то, что она может перегружаться для создаваемых новых классов, что позволяет легко встраивать в систему ввода-вывода С++ новые создаваемые типы данных.

Похожие материалы

Информация о работе

Тип:
Конспекты лекций
Размер файла:
608 Kb
Скачали:
0