Файловые потоки бывают входными, выходными и двунаправленными
Файловые потоки бывают входными, выходными и двунаправленными. Файловые потоки могут быть форматируемыми и неформатируемыми. Файловые потоки связываются с внешними файлами на диске либо при создании потока, либо при открытии. Файловый поток может быть открыт в текстовом режиме (и связан с текстовым файлом) или в двоичном режиме (и связан с двоичным файлом). При уничтожении или закрытии потока связь разрывается.
Для файловых потоков работают методы, обеспечивающие произвольный доступ к любому байту внешнего файла. В частности, с помощью этих методов легко узнать размер файла.
Потоки по умолчанию буферизованы, и метод rdbuf () часто используется для копирования и перенаправления потоков.
Помимо обычных потоков, в библиотеке реализованы широкие потоки, которые работают с широкими символами типа wchar_t.
Контрольные вопросы
21. В каких состояниях может находиться поток? Каким образом отслеживается состояние конца потока?
22. Каким образом строковые потоки можно использовать для ограничения ширины поля ввода?
23. Перечислите средства форматирования объектно-ориентированной библиотеки.
24. Каким образом ввести строку типа st г i ng с пробелами?
25. Каково назначение флагов форматирования? Какие средства реализованы в библиотеке для работы с флагами форматирования?
26. Что такое «манипулятор»? В чем преимущества манипуляторов перед флагами форматирования?
27. Как связываются файлы с потоками в объектно-ориентированной библиотеке?
28. Можно ли файлы, записанные независимо от С++, прочитать объектно-ориентированными средствами ввода-вывода С++? А наоборот?
29. Перечислите режимы открытия объектно-ориентированных файловых потоков. Каким образом комбинируются режимы открытия файловых потоков?
30. Обязательно ли закрывать файл, связанный с объектно-ориентированным файловым потоком? А открывать?
31. Каким образом открыть файловый поток для чтения и записи одновременно?
32. Как открыть файловый поток для дозаписи?
33. Можно ли вывести значение переменной в двоичном виде и как это сделать?
34. Разрешается ли наследовать от классов библиотеки ввода-вывода?
35. Каким образом можно перенаправить объектно-ориентированный поток?
36. Как используется буфер потока для копирования потока?
37. Какими операциями выполняется форматированный ввод в файловые потоки и вывод из них? А неформатированный?
38. Реализованы ли в объектно-ориентированной библиотеке средства прямого доступа к файловым потокам?
39. С какими объектно-ориентированными потоками разрешается, а с какими не разрешается использовать средства прямого доступа?
40. Покажите, каким образом можно выполнить перегрузку операций ввода-вывода для нового типа данных.
41. Как выполняется обработка ошибок ввода-вывода в объектно-ориентированной библиотеке?
42. Какое стандартное исключение генерируется при ошибках ввода-вывода? Обязательно ли оно генерируется?
Упражнения:
1. Модифицировать класс TDeque (см. листинги 6.1-6.3), добавив операцию простого сцепления. Перегрузить для этого операцию operator+.
2. Добавить в класс TDeque операции сортировки и слияния сортированных списков.
Опубликовал Kest
May 30 2014 22:07:58 ·
0 Комментариев ·
3432 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.