Інформатика
Структура програми. Базові типи даних : Введення - виведення потоку даних
 

Введення - виведення потоку даних

     При введенні - виведенні потоку всі дані розглядаються як потік окремих байтів. Функції введення - виведення для потоку дозволяють обробляти дані різних розмірів і форматів: від одиночного символу до великих структур даних. Програміст може використовувати функції чи бібліотеки, розробляти власні і включати їх у бібліотеку. Для доступу до бібліотеки цих класів треба включити в програму відповідні файли заголовків, наприклад:

          #include <iostream.h>.

     За замовчанням стандартні введення, виведення і виведення повідомлень щодо помилки відносяться до консолі користувача (клавіатура й екран). Це означає, що кожен раз, коли програма очікує введення зі стандартного потоку, дані мають надходити з клавіатури, а якщо програма виводить, то на екран.

     Найчастіше в С++ використовується поточне введення даних, операції якого включені до складу класів istream чи iostream. Воно може здійснюватися з визначеним у цих класах вхідним потоком cin чи вхідним потоком, що визначений користувачем. Для читання символів з цього потоку вказується операція витягу з потоку, що позначається за допомогою символів " >> ". Це перевантажена операція, визначена для всіх простих типів і покажчика на char. Формат запису оператора cin має вид:

cin [ >> values ];

Наприклад, для введення значень змінним х і у можна написати:

          cin >> x >> y;

     Виведення даних може бути неформатованим і форматованим. Найчастіше для виведення застосовується визначена операція <<, що записується разом з ім'ям вихідного потоку cout. Таким чином, запис:

          cout << x;

означає виведення значення змінної x (чи запис у потік). Цей оператор вибирає необхідну функцію перетворення даних у потік байтів. Формат запису cout відрізняється від форми запису команд С++ :

cout << data [ << data << "\n"];

де data − це змінні, константи чи вирази, "\n" - керуючий символ переведення каретки на нову строку.      

     Для додаткового керування вихідними даними використовуються маніпулятори: setw(n) і setprecision(k). Маніпулятор setw(n) служить для вказівки довжини поля, що приділяється для виведення наступних даних (тут n - кількість позицій у рядку), setprecision(k) призначений для вказівки кількості позицій у дробовій частині дійсних чисел. Функція setprecision(2) повідомляє С++ про те, що число з крапкою треба виводити з двома знаками після крапки з округленням дробової частини. Наприклад, при виконанні оператора

сout << setw(7) << setprecision (2) << 123.456789;

буде отриманий наступний результат:123.46. Для використання цих маніпуляторів треба підключати заголовний файл <iomanip.h>.

Приклад 6. Використання маніпуляторів під час виведення.

#include <iostream.h>

#include <iomanip.h>

void main ( )

{

     cout << 456 << 789 << 123 << endl;

     cout << setw(5) << 456 << setw(5) << 789 << setw(5) << 123 << endl;

     cout << setw(7) << 456 << setw(7) << 789 << setw(2) << 123 << endl;

}

Результати виконання програми:

               456789123

               456 789 123

               456 789 12

      При використанні функції setw() С++ вирівнює число вправо в границях заданої ширини поля виведення. Якщо ширина недостатня, С++ ігнорує вказане значення.

 
© 2008 ХНУРЭ, Інформатики, Сінельнікова Т.Ф., informatika@kture.Kharkov.ua
Розроблено за допомогою LERSUS