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

   
На этом шаге мы перечислим правила построения пользовательских итераторов ввода-вывода.

   
Ниже перечислены некоторые правила, которые должны соблюдаться в пользовательских реализациях операторов ввода-вывода.
Эти правила продиктованы типичным поведением стандартных операторов.

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

   
Со следующего шага мы начнем рассматривать классы потоковых буферов.



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий