Реферат: Форматування даних в програмах C++
Підготував
студент групи ІБ-21
Горон Роман
Львів 2009
Вступ
Формати представлення що виводиться інформації та правила відтворення даних при введенні можуть бути змінені програмістом за допомогою прапорів форматування. Ці прапори успадковані всіма потоками з даного класу ios. Прапори форматування реалізовані у вигляді окремих фіксованих бітів і зберігаються в protected компоненті класу long x_flags. Для доступу до них є відповідні public функції.
Під час введення-виведення можна виконувати форматування даних.
Щоб використовувати операції>> і <<з даними користувача типів, що визначаються користувачем, необхідно розширити дію цих операцій, ввівши нові операції-функції. Першим параметром операції - функції має бути посилання на об'єкт потокового типу, другий - посилання або об'єкт для користувача типу. У файлі iostream.h визначені наступні об'єкти, пов'язані з стандартними потоками введення-виводу:
cin - об'єкт класу istream, пов'язаний зі стандартним буферізірованним вхідним потоком;
cout - об'єкт класу ostream, пов'язаний зі стандартним буферизуєрованным вихідним потоком;
cerr - не буферізірованний вихідний потік для повідомлення про помилки;
clog - буферізірованний вихідний потік для повідомлення про помилкиках.
Форматування.
Безпосереднє застосування операцій введення <<і виведення>> до стандартним потокам cout, cin, cerr, clog для даних базових типів привадит до використання "замовчуваних" форматів зовнішнього представлення пересилаються значень.
Крім прапорів форматування використовуються наступні protected компонентні дані класу ios:
int x_width - мінімальна ширина поля виводу.
int x_precision - точність подання дійсних чисел (колікість цифр дробової частини) при виведенні;
int x_fill - символ-заповнювач при виведенні, пробіл - за умовчанням.
Для отримання (установки) значень цих полів використовуються следмуть компонентні функції:
int width ();
int width (int);
int precision ();
int precision (int);
char fill ();
char fill (char);
Маніпулятори.
Незважаючи на гнучкість і великі можливості управління форматами за допомогою компонентних функцій класу ios, їх застосування достаточно громіздко. Більш простий спосіб зміни параметрів і прапорів форматування забезпечують маніпулятори.
Маніпуляторами називаються спеціальні функції, що дозволяють модифіковані роботу потоку. Особливість маніпуляторів полягає в те, що їх можна використовувати в якості правого операнда операції>> або <<. Як лівого операнда, як зазвичай, використовується потік (посилання на потік), і саме на цей потік впливає маніпулятор.
Для забезпечення роботи з маніпуляторами в класах istream і ostream є такі перевантажені функції operator. istream & operator>> (istream & (* _f) (istream &)); ostream & operator <<(ostream & (* _f) (ostream &)); При використанні маніпуляторів слід включити заголовкові файл <iomanip.h>, в якому визначено вбудовані маніпулятори.
Визначення користувальницьких маніпуляторів.
--> ЧИТАТЬ ПОЛНОСТЬЮ <--