|
Программирование >> Структурное программирование
определяет, не было ли отказа в операции с потоком; обычно после такой неудачной операции данные можно восстановить. Бит badbit устанавливается для потока при возникновении ошибки, которая приводит к потере данных. Функция-элемент bad определяет, имела ли операция с потоками такую ошибку. При столь серьезных ошибках данные обычно не восстанавливаются. Функция-элемент good возвращает true, если для данного потока все функции bad, fail и eof должны вернуть false. Операции ввода-вывода можно нормально выполнять только с такими хорошими потоками. Функция-элемент rdstate возвращает состояние ошибки потока. Функция-элемент clear обычно используется для восстановления потока в нормальное состояние (когда функция-элемент good возвращает истину), при котором можно продолжать операции ввода-вывода данного потока. Программист может перегрузить операции поместить в поток и взять из потока для выполнения ввода-вывода данных, тип которых определен пользователем. Перегруженная операция взять из потока принимает в качестве параметров ссылку на istream, ссылку на определенный пользователем тип данных и возвращает ссылку на istream. Перегруженная операция поместить в поток принимает в качестве параметров ссылку на ostream, ссылку на тип, определенный пользователем, и возвращает ссылку на ostream. Часто перегруженные функции operator объявляются как дружественные функции класса. Это позволяет им иметь доступ к закрытым элементам класса. В языке С-Н-1- имеется функция-элемент tie для синхронизации (связывания) выполнения операций над потоками istream и ostream, которая гарантирует, что вывод появится раньше последующего ввода. заполняющий символ заполняющий символ по умолчанию (пробел) класс fstream класс ifstream класс ios класс iostream класс istream класс ofstream класс ostream манипулятор stream манипулятор потока dec манипулятор потока flush манипулятор потока hex манипулятор потока oct манипулятор потока resetiosflags манипулятор потока setbase манипулятор потока setfill манипулятор потока setiosflags манипулятор потока setprecision манипулятор потока setw неформатированный ввод-вывод операция взять из потока ( ) операция поместить в поток ( ) определенные пользователем потоки параметризованный манипулятор потока предопределенные потоки признак конца файла расширяемость символы разделители состояния формата сохранение типов данных при вводе-выводе стандартный заголовочный файл <iomanip.h> точность по умолчанию флаги формата форматированный ввод-вывод в память функция-элемент bad функция-элемент clear функция-элемент eof функция-элемент fail функция-элемент fill функция-элемент flags функция-элемент flush функция-элемент gcount функция-элемент geline функция-элемент get функция-элемент good функция-элемент ignore функция-элемент operator void * функция-элемент operator! функция-элемент реек функция-элемент precision функция-элемент put функция-элемент putback функция-элемент rdstate функция-элемент read функция-элемент setf функция-элемент tie функция-элемент unsetf функция-элемент write функция-элемент ws ширина поля Типичные ошибки программирования 11.1. Попытка прочитать данные из потока класса ostream (или из любого другого выходного потока). 11.2. Попытка записать данные в поток класса istream (или в любой другой входной поток). 11.3. Отсутствие круглых скобок, устанавливающих последовательность выполнения операций, при использовании операций с относительно высоким приоритетом вставить в поток и взять из потока . 11.4. Если не обеспечивается достаточно широкое поле для обработки выходных данных, то каждое выходное значение печатается с такой шириной поля, которая необходима для его полного представления; это может вызывать сложности при чтении выходных данных. Хороший стиль программирования 11.1. Используйте исключительно возможности языка С++ для организации ввода-вывода в программах, написанных на С++, хотя в этих программах доступен и стиль программирования языка С. 11.2. При выводе выражений помещайте их в круглых скобках, чтобы предотвратить возникновение каких-либо проблем, связанных с последовательностью выполнения операций, вычисляющих значения в выражениях, и операции . Советы по повышению эффективности 11.1. Используйте неформатированный ввод-вывод для достижения максимальной эффективности при обработке файлов большого объема. Замечания по технике программирования 11.1. Стиль программирования на языке С++ - это стиль, в котором предусмотрены средства сохранения типов данных 11.2. Язык С++ предоставляет возможность для стандартной обработки ввода-вывода встроенных типов данных и типов данных, определенных пользователем. Это свойство облегчает разработку программного обеспечения вообще и повторное его использование в частности. 11.3. Новые возможности ввода-вывода данных, тип которых определен пользователем, добавляются в С++ без модификации объявлений или элементов-данных закрытого типа в классе ostream и в классе istream. Это способствует расширяемости - наиболее привлекательной черте языка С++. Упражнения для самопроверки 11.1. Заполнить пробелы в следующих утверждениях: a) Перегруженные операции потока часто определяются как функции класса. b) Набор битов для выравнивания формата включает , и . c) Ввод-вывод в С++ представляет собой обработку битов. d) Параметризованные манипуляторы и могут использоваться для установки и сброса флагов состояния формата. e) Большая часть программ на С++ должна включать заголовочный файл , содержащий основную информацию, необходимую для всех операций ввода-вывода. f) Функции-элементы и используются для установки и сброса флагов состояния. g) Заголовочный файл содержит информацию для выполнения форматированного ввода-вывода в память.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |