Біти режимів

Ми вже зустрічали біт режиму ios::binary. При написанні функції open() було використано ще декілька. Зведемо їх у спільну таблицю (таблиця 10). біти режимів, визначені в ios, визначають різні методи відкриття потокових об’єктів.

Таблиця 10

Біти режимів

Біт режиму Результат
in Відкриття для читання (по замовчуванню для ifstream)
out Відкриття для запису (по замовчуванню для ofstream)
ate Читання, починаючи з кінця файлу (AT End)
app Запис, починаючи з кінця файлу (APPend)
trunc Обрізати файл до нульової довжини, якщо він вже існує (TRUNCate)
nocreate Не відкривати неіснуючий файл
noreplace Не відкривати для виводу існуючий файл, якщо не встановлені ate або app
binary Відкрити в бінарному (не текстовому) режимі

 

В програмі 26.8 використовувався біт ios::app, оскільки нам потрібно було зберегти все, записане в файл до того. Тобто, можна записати що-небудь в файл, завершити програму, запустити її заново і продовжувати записувати дані, зберігши при цьому результати попередньої сесії. ios::in та ios::out ми використовуємо тому, що хочемо одночасно здійснювати ввід і вивід. ios::binary теж необхідний, оскільки ми записуємо бінарні об’єкти. Вертикальні риски між прапорами потрібні нам тому, щоби з бітів сформувалося єдине ціле число. При цьому декілька прапорів можуть використовуватися одночасно.

За один раз в файл записується один об’єкт person за допомогою функції write(). Після закінчення запису ми хочемо прочитати файли цілком. Для цього потрібно спершу встановити вказівник файлу на початок. Цим займається функція seekg. Після цього ми вже впевнені, що читання розпочнеться з початку файлу. Потім у циклі while ми зчитуємо об’єкт з файлу і виводимо його на екран.

Це триває доти, доки не будуть прочитані всі об’єкти класу person – стан, що визначається прапором ios::eofbit.

 








Дата добавления: 2015-08-26; просмотров: 770;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.003 сек.