текстовому редакторі. У двійковіх (бінарніх) файлах інформація зчітується и запісується у виде блоків визначеного розміру, в якіх могут зберігатіся дані будь-которого типом и структур. У бінарному файлі дані представляються в такій самій форме, в Якій смороду зберігаються у Внутрішній пам яті (основній/оператівній) ЕОМ. У текстовому файлі інформація (текстова) представлена ??у виде кодів текстових сімволів, визначених кодових таблиць (ASCII, Unicode). Так, ціле без знакове число у текстовому и бінарному файлі буде уявлень у різніх формах. Например число 123 у текстовому файлі буде уявлень побайтно (посимвольно): 00110001b (31h), 00110010b (32h), 00110011b (33h), а в бінарному файлі: 01111011b, де b вказує на двійкову систему числення, а h - на шістнадцятірічну. Символи цифр в табліці ASCII почінаються зі зміщення 30h. Отже, у текстовому файлі n-знакових десяткове число займатіме n байтів, а в бінарному десь у дві разї менше. Хоча насправді, будь-який файл своїй природі - двійковій (бінарній), так як на фізічному Рівні у пам яті ЕОМ представляет собою масив байтів.
Для роботи з файлами С ++ підтрімує множини функцій стандартних бібліотек, Які складають основу заготовочного файлу стандартної бібліотеки lt; stdio.h gt ;. У більшості віпадків при работе зі списками в С ++ для Збереження/зчітування даних в/з файл/файлу Зручне використовуват СПЕЦІАЛЬНІ тіпі даних, Які назіваються потоками. С ++ абстрагує файлові операции, перетворюючі їх в операции з потоками байтів, Які могут буті як потоками вводу так и потоками виводу. Для операцій з файлами існує трьох класи: ifstream, ofstream і fstream. ЦІ класи є похіднімі від istream, ostream і iostream. Оскількі останні, у свою черго, є похіднімі від класу ios, класи файлових потоків наслідують всі функціональні возможности батьківськіх (Функції и прапорці форматування, маніпулятори та Інші). Для реализации файлового вводу-виводу нужно Включити у програму заголовні файли fstream.h. Файловий потік винен буті зв язаний з файлом дере, чем его буде можливо використовуват. З Іншого боці, передумовлені потоки могут використовуват Одразу после запуску програми, у конструкторах статичних класів, Які віконуються навіть Ранее виклику Функції main (). Файловий потік можливо позіціонуваті у довільну позицію у файлі. Для создания файлового потоку ЦІ класи передбачають следующие форми конструктора:
- создать потік, що не зв язуючі з файлом: ifstream (), ofstream (), fstream ();
- создать потік, Відкрити файл и зв язати потік з файлом: ifstream (constchar * name, ios :: openmode mode=ios :: in), ofstream (constchar * name, ios :: openmode mode =ios :: outios :: trunc); fstream (constchar * name, ios :: openmode mode=ios :: in | ios :: out), виводу, або fstreamfs ( FileName.dat ). Тут name - ім я файлу, mode - режим Відкриття файлу. Параметр mode может прійматі значення, наведені в табліці:
Таблиця 1
Режим відкріттяПрізначенняios :: inВідкріті файл для чітанняios :: outВідкріті файл для запісуios :: ateПочатоко віводу- в Кінець файлуios :: appВідкріті файл для Додавання в кінецьios :: truncВідалітівміст файлуios :: binaryДвійковій режим операцій
Режими Відкриття файлу представляються собою бітові маски, тому можливо задаваті дві чі более режімів, про єднуючі їх по бітах операцією «АБО». За замовчуванням режим Відкриття файлу відповідає типу файлового потоку. У потоці вводу або виводу прапорець режиму всегда встановлений неявно.
Файли, Які відкріваються для виводу, створюються, если смороду НЕ існують.
Если Відкриття файлу закінчілось Невдача, про єкт, Який відповідає потоку, буде повертаті 0 (нуль).
Если при відкрітті файлу не Вказаною режим ios :: binary, файл відкрівається в текстовому режімі и после того, як файл успішно Відкритий для виконан операцій вводу-виводу, можна використовуват оператори Отримання и вставки в потік. Для перевіркі, на Кінець файлу, можна використовуват функцію ios :: eof ().
завершити операции вводу-виводу, необходимо закрити файл, визвало функцію-член close () з прототипом void close (). Закриття файлу відбувається автоматично при віході потокового про єкту з області Існування, коли віклікається деструктор потоку.
Контрольні питання.
1. Для якіх цілей при розробці програмного забезпечення вікорістовується розгалуженій алгоритм?
2. Що таке структура даних в обчіслювальній техніці.
. Що означає структура даних в контексті функціонального программирования?
. На що впліває вибір Структури даних при створені програмного забезпечення?
. Помощью чого формуються Структури даних?
. Що...