Содержание
- 2. Содержание 10-го занятия по практике Потоки и файлы. Потоковые классы. Класс istream. Класс ostream. Потоковый ввод/вывод
- 3. Потоковые классы Поток — это общее название потока данных. В C++ поток представляет собой объект некоторого
- 4. Преимущества потоков Одним из аргументов в пользу потоков является простота использования. Каждый объект сам знает, как
- 5. Иерархия потоковых классов Потоковые классы имеют довольно сложную иерархическую структу-ру. Операция извлечения >> является методом класса
- 6. Иерархия потоковых классов
- 7. Класс ios ios является дедушкой всех потоковых классов и обладает большинством особенностей, без которых работа с
- 8. Класс ios. Флаги форматирования
- 9. Класс ios. Флаги форматирования Есть несколько способов установки флагов форматирования, для каждого свои. Так как они
- 10. Класс ios. Манипуляторы Манипуляторы — это инструкции форматирования, которые вставляются прямо в поток. Например endl, который
- 11. Класс ios. Манипуляторы Следует иметь в виду, что манипуляторы действуют только на те данные, которые следуют
- 12. Класс ios. Функции Класс ios содержит набор функций, с помощью которых можно выстав-лять флаги форматирования и
- 13. Класс istream
- 14. Класс istream
- 15. Класс istream Нам уже встречались некоторые из этих функций, например get(). Большинство из них рассчитаны на
- 16. Класс ostream Класс ostream предназначен для вывода (вставки в поток) данных. Как и в предыдущем случае,
- 17. Классы iostream и _withassign Класс iostream является порожденным по отношению к istream и ostream. Его единственное
- 18. Предопределенные потоковые объекты Использования двух предопределенных потоковых объектов, порожденных классами вида _withassign: cin и cout мы
- 19. Ошибки потоков. Биты статуса ошибки
- 20. Ввод чисел Обработка ошибки при вводе чисел. При чтении числа с клавиатуры или с диска, проверяется
- 21. Ввод целого числа и дробного Задача 10-2 Обработка ошибки при вводе чисел. При чтении числа с
- 22. Ввод целого числа и дробного (продолжение) Задача 10-2
- 23. Ввод целого числа и дробного (окончание) Задача 10-2
- 24. Потоковый ввод/вывод дисковых файлов Большинству программ требуется сохранять данные на диске и считывать их. Работа с
- 25. Запись данных Задача 10-3 Следующая программа демонстрирует запись символа, целого числа, числа типа double и двух
- 26. Чтение данных Задача 10-4 Прочитать файл, если он уже создан, можно с использованием объекта типа ifstream,
- 27. Строки с пробелами (запись) Задача 10-5 Следующая программа выводит строки с пробелами – после каждой строки
- 28. Строки с пробелами (чтение) Задача 10-6 Следующая программа считывает строки с пробелами используя функцию getline(), результат
- 29. Определение признака конца файла (EOF) Итак, объекты порожденных из ios классов содержат флаги статуса ошибок, с
- 30. Ввод символов Задача 10-7 Функция put() является методом ostream, может быть использована для ввода единичных символов.
- 31. Вывод символов Задача 10-8а Функция get() является методом istream, может быть использована для вывода единичных символов.
- 32. Вывод символов Задача 10-8в Есть и другой способ читать символы из файла — использовать функцию rdbuf()
- 33. Двоичный ввод/вывод Задача 10-9 Массив целых чисел запи-сывается в файл и читает-ся из него. Используются две
- 34. Оператор reinterpret_cast В задаче 10-9 использует оператор reinterpret_ cast для того, чтобы буфер данных типа int
- 35. Закрытие файлов До сих пор в наших примерах не нужно было вручную закрывать файлы — это
- 36. Объектный ввод/вывод Так как C++ — это все-таки объектно-ориентированный язык, рассмотрим, как происходит запись объектов в
- 37. Запись объекта на диск Задача 10-10 При записи объекта обычно используем бинарный режим. В данной программе
- 38. Чтение объекта с диска Задача 10-11 Для чтения используется метод read(). Из файла PERSON.DAT считывается информация
- 39. Ввод/вывод множества объектов Задача 10-12 В следующем примере в файл записывается произвольное число объектов. Затем они
- 40. Ввод/вывод множества объектов Задача 10-12 В следующем примере в файл записывается произвольное число объектов. Затем они
- 41. Биты режимов
- 42. Указатели файлов У каждого файлового объекта есть два ассоциированных с ним значения, называемые указатель чтения и
- 43. Вычисление сдвига Задача 10-13 В следующем примере вычисляется количество записей person, по запросу выводится информация о
- 44. Реагирование на ошибки Задача 10-14 Обработка ошибок. Все дисковые опера-ции проверяются после их выполнения Программа открыва-ет
- 45. Реагирование на ошибки Задача 10-14 Обработка ошибок. Все дисковые операции проверяются после их выполнения. Программа открывает
- 46. Как классы записывают и читают сами себя Статические функции Одним из способов записать за один сеанс
- 47. Как классы записывают и читают сами себя Размеры порожденных объектов Объекты, хранящиеся в памяти, имеют разные
- 48. Как классы записывают и читают сами себя Использование функции typeid() Можно использовать ее для определения класса
- 49. Классы записывают и читают сами себя Задача 10-15 Код программы - начало
- 50. Классы записывают и читают сами себя Код программы – продолжение 1 Задача 10-15
- 51. Классы записывают и читают сами себя Код программы – продолжение 2 Задача 10-15
- 52. Классы записывают и читают сами себя Код программы – продолжение 3 Задача 10-15
- 53. Классы записывают и читают сами себя Код программы – продолжение 4 Задача 10-15
- 54. Классы записывают и читают сами себя Код программы – конец Задача 10-15
- 55. Как классы записывают и читают сами себя Задача 10-15 Код типа объекта Мы умеем определять класс
- 56. Как классы записывают и читают сами себя Задача 10-15 Взаимодействие с программой
- 57. Перегрузка операторов извлечения и вставки Перейдем к изучению следующей темы, связанной с потоками. Данный раздел будет
- 58. Перегрузка cout и cin Задача 10-16 Приведем пример, в котором операторы извлечения и вставки для класса
- 59. Перегрузка > для файлов Задача 10-17 Следующий пример продемонстрирует, как перегружаются операторы > в классе Distance
- 60. Память как поток Область памяти можно считать потоком и записывать в нее данные точно так же,
- 61. Память как поток Задача 10-18 Данный пример показывает, как это реально применить на практике. Создаем бу-фер
- 62. Аргументы командной строки Если вы использовали когда-нибудь старый добрый MS DOS, вам должно быть знакомо понятие
- 63. Аргументы командной строки Задача 10-19 Следующая программа, приводимая в качестве примера, считывает и выводит на экран
- 64. Список задач 10-го занятия 1. Ввод чисел 2. Ввод целого числа и дробного 3. Запись данных
- 65. Список задач 10-го занятия 10. Запись объекта на диск 11. Чтение объекта с диска 12. Ввод/вывод
- 66. Резюме 10-го занятия В этой главе мы ознакомились с иерархией потоковых классов и показали, как обрабатывать
- 67. Резюме 10-го занятия Функции read() и write работают с данными в двоичном режиме. Поэтому можно записывать
- 68. Резюме 10-го занятия Проверка на наличие ошибок должна осуществляться после выполнения каждой файловой операции. Сам файловый
- 69. Наиболее «популярные» ошибки
- 70. Литература Роберт Лафоре. Объектно-ориентированное программирование в С++ В. И. Шупляк. С++ Практический курс В. В. Подбельский.
- 72. Скачать презентацию