Підсумок. При вивченні цієї теми ми познайомилися з ієрархією потокових класів і показали, як обробляти різного роду помилки вводу-виводу
При вивченні цієї теми ми познайомилися з ієрархією потокових класів і показали, як обробляти різного роду помилки вводу-виводу. Файли в С++ зв’язані з об’єктами різних класів: клас ofstream використовується для файлового виводу, ifstream – для вводу, fstream – mдля вводу і виводу одночасно. Методи цих чи базових класів призначені для виконання операцій вводу-виводу. Такі операції і функції як <<, put(), write() призначені для виводу, а >>, get() і read() – для читання.
Функції read() та write() працюють з даними в двійковому режимі. Тому можна записати в файли об’єкти цілком, незалежно від типів даних, які вони містять. Можуть зберігатися як окремі об’єкти, так і масиви та інші структури, що складаються з багатьох об’єктів. Файловий ввід/вивід може оброблятися з використанням методів. За нього можуть відповідати як конкретні об’єкти, так і класи (за допомогою статичних функцій).
Перевірка на наявність помилок повинна здійснюватися після виконання кожної файлової операції. Сам файловий об’єкт приймає нульове значення, якщо виникає яка-небудь помилка. До того ж для визначення деякихвидів помилок використовують методи класів. Операції видобування (>>) та вставки (<<) перезавантажуються для роботи з типами даних користувача. Пам’ять може представлятися у вигляді потоку, а дані в неї можуть посилатися так, як начебто вона була б файлом.
Питання по темі
1. Потік С++
а) являє собою потік функціонального управління
б) являє собою потік даних з одного місця в інше
в) асоційований з конкретним класом
г) являє собою файл
2. Базовим для більшості потокових класів є клас
а) ios
б) stream
в) fstream
3. Три потокові класи, призначені для файлового вводу/виводу – це
а) stream, ofstream, fstream
б) ifstream, ofstream, fstream
в) ifstream, ofstream, ios
4. Який оператор правильно створює об’єкт salefile класу ofstream та асоціює його з файлом sales.dat
а) ofstream salefie as “sales.dat”;
б) ofstream salefie #“sales.dat”;
в) ofstream salefie(“sales.dat”);
5. Чи істинне твердження, що деякі потоки є вхідними, а деякі – вихідними?
а) так
б) ні
6. Який умовний вираз визначає, чи досяг об’єкт foobar класу ifstream кінця файлу чи настала помилка
а) ifstream(foobar::eof)
б) ifstream(foobar)
в) ifstream(foobar::err)
7. Можна виводити текст в об’єкт класу ofstream з використанням оператора вставки << тому що:
а) клас ofstream – це потік
б) оператор вставки працює з будь-якими класами
в) насправді вивід здійснюється в cout
г) оператор вставки перезавантажений в ofstream
8. Який вираз записує одиничний символ в об’єкт fileout класу ofstream?
а)fileout.put(ch);
б)write.fileout(ch);
в)put(fileout(ch));
9. Для запису даних, що містять змінні типу float, в об’єкт типу ofstream необхідно використати
а) оператор вставки
б) seekg()
в) write()
г) put()
10. Який вираз зчитує вміст об’єкту ifile класу ifstream в масив buf?
а) ifile.read(buf,sizeof(buf));
б) ifile.read((char*) buf,sizeof(buf));
в) ifile.read(buf);
11. Біти режимів таких як app та ate:
а) визначаються в класі ios;
б) можуть встановлювати, для читання чи для запису відкритий файл
в) працюють з функціями put() і get()
г) встановлюють режими відкриття файлів
12. Чи істинне твердження: файловий вказівник завжди містить адресу файлу?
а) так
б) ні, файловий вказівник може бути синонімом поточної позиції
13. Який вираз зсовує поточну позицію на 13 байтів назад в потоковому об’єкті f1?
а)f1.seekg(-13,ios::end);
б)f1.seekg(13,ios::beg);
в)f1.seekg(-13,ios::cur);
14. Вираз f1.write((char*)&obj1,sizeof(obj1);
а) записує методи obj1 в f1
б) записує дані obj1 в f1
в) записує методи і дані obj1 в f1
г) записує адресу obj1 в f1
15. Написати опис перезавантаженого оператора >>, який бере дані з об’єкту класу istream і виводить їх як дані об’єкту класу Sample
а)istream& operator>>(istream&,sample&);
б)istream operator>>(istream&,sample&);
в)istream operator>>(istream,sample);
Дата добавления: 2015-08-26; просмотров: 672;