Шаг 510.
Библиотека STL. Ввод-вывод с использованием потоковых классов. Правила построения пользовательских итераторов ввода-вывода
На этом шаге мы перечислим правила построения пользовательских итераторов ввода-вывода.
Ниже перечислены некоторые правила, которые должны соблюдаться в пользовательских реализациях операторов ввода-вывода.
Эти правила продиктованы типичным поведением стандартных операторов.
- Выходной формат должен допускать определение оператора ввода, читающего данные без потери информации.
В некоторых случаях - особенно для строк - эта задача практически невыполнима из-за проблем с пробелами. Пробел
внутри строки невозможно отличить от пробела, разделяющего две строки.
- При вводе-выводе должна учитываться текущая форматная спецификация потока данных. Прежде всего это относится к ширине поля при выводе.
- При возникновении ошибок должен быть установлен соответствующий флаг состояния.
- Ошибки не должны изменять состояние объекта. Если оператор читает несколько объектов данных,
промежуточные результаты сохраняются во временных объектах до окончательного принятия значения.
- Вывод не должен завершаться символом новой строки, в основном из-за того, что это не позволит вывести другие
объекты в той же строке.
- Даже слишком большие данные должны читаться полностью. После чтения следует установить соответствующий
флаг ошибки, а возвращаемое значение должно содержать полезную информацию (например, максимальное допустимое значение).
- При обнаружении ошибки форматирования следует по возможности прекратить чтение.
Со следующего шага мы начнем рассматривать классы потоковых буферов.
Предыдущий шаг
Содержание
Следующий шаг