Вівторок, 19.03.2024, 08:54
Кабінет інформатики Затурцівської ЗОШ ім. В. К. Липинського
Вітаю Вас Гость | RSS
Головна Ввід і вивід Реєстрація Вхід
Форма входу

Меню сайту

Категорії розділу
Шкільні і районні [21]
Обласні [5]
Всеукраїнські [4]
Комп'ютерні [34]
Олімпіади [12]
новини олімпіад

Наше опитування
Якій мові програмування ви віддаєте перевагу?
Всього відповідей: 298

Міні-чат

Статистика

Онлайн всього: 1
Гостей: 1
Користувачів: 0

STAT24
stat24 -счетчик посещаемости сайта

ПОГОДА
Погода в Україні Погода в Україні

Потокові класи

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

Читання даних з потоку називається вийманням, вивід в потік – поміщенням або включенням. Потік визначається як послідовність байтів і не залежить від конкретного пристрою, з яким відбувається обмін (оперативна пам’ять, файл на диску, клавіатура або принтер). Обмін з потоком для збільшення швидкості передачі даних проводиться, як правило, через спеціальну область оперативної пам’яті – буфер. Фактична передача даних виконується при виводі після заповнення буферу, а при вводі – якщо буфер вичерпаний.

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

За виглядом пристроїв, з якими працює потік, можна розділити потоки на стандартні, файлові і рядкові.

Стандартні потоки призначені для передачі даних від клавіатури і на екран дисплея, файлові потоки  - для обміну інформацією з файлами на зонішніх носіях даних (наприклад, на магнітному диску), а рядкові потоки – для роботи з масивами символів в оперативній пам’яті.

Для підтримки потоків бібліотека С++ містить ієрархію класів, побудовану на двох базових класах – ios і streambuf

Клас ios містить загальні для вводу і виводу поля і методи, клас streambuf забезпечує буферизацію потоків і їх взаємодію з фізичними пристроями. Від цих класів наслідується клас istream для вхідних потоків і ostream – для вихідних. Два останніх класи є базовими для класу iostream,  що реалізує двонаправлені потоки. Нижче в ієрархії класів розміщуються файлові і рядкові потоки. Далі перелічені часто використовувані класи потоків.

ios                    - базовий клас потоків;

istream            - клас вхідніх потоків;

ostream           - клас вихідних потоків;

iostream          - клас двонапрямлених потоків;

istringstream   - клас вхідних рядкових потоків;

ostringstream  - клас вихідних рядкових потоків;

stringstream     - клас двонапрямлених рядкових потоків;

ifstream             - клас вхідних файлових потоків;

ofstream            - клас вихідних файлових потоків;

fstream             -  клас двонапрямлених файлових потоків.

Опис класів знаходиться в заголовочних файлах:

<ios>                   - базавий клас потоків вводу/виводу;

<iosfwd>            - попередні об’яви засобів вводу/виводу;

<istream>          - шаблон потоку вводу;

<ostream>        - шаблон потоку виводу;

<iostream>       - стандартні об’єкти і операції з потоками вводу/виводу;

<fstream>         - потоки вводу/виводу в файли;

<sstream>         - потоки вводу/виводу в рядки;

<strbuf>             - буферизація потоків вводу/виводу;

<iomanip>         - маніпулятори.

Підключення до програми файлів <fstream> і <sstream> автоматично підключає і файл <iostream>, так як він є для них базовим.

Основною перевагою потоків порівняно з функціями вводу/виводу, наслідуваними з бібліотеки С, є контроль типів, а також розширюваність, тобто є можливість працювати з типами, визначеними користувачем. Для цього потрібно визначити операції потоків.

Крім того, потоки можуть працювати з розширеним набором символів wchar_t. Для цього використовуються класи wistream, wostream, wofstream і т. д. . До недоліків потоків можна віднести зниження швидкодії програми, яке в залежності від реалізації компілятора може бути досить відчутним.

 

Стандартні потоки

Заголовочний файл <iostream> містить, крім опису класів для вводу/виводу, чотири зумовлені об’єкти:

Об’єкт

Клас

Опис

cin

istream

Зв’язується з клавіатурою (стандартним буферизованим вводом)

cout

ostream

Зв’язується з екраном (стандартним буферизованим виводом)

cerr

ostream

Зв’язується з екраном (стандартним небуферизованим виводом), куди направляються повідомлення про помилки

clog

ostream

Св’язується з екраном (стандартним буферизованим виводом), куди направляються подомлення про помилки

 

 Ці об’єкти створюються при включенні в програму заголовочного файлу <iostream>, при цьому стають доступними зв’язані з ним засоби вводу/виводу. Імена цих об’єктів можна перепризначити на інші файли або символьні буфери.

В класах istream і ostream операції виймання з потоку >> і поміщення в потік << визначені шляхом перегрузки операції зсуву. Наприклад:

#include <iostream>

using namespace std;

int main()

{

       int a;

cin>>a;

cout<<”Vi  vveli ”<<a;

}

     


Терміни українські

Терміни англійські

Календар
«  Березень 2024  »
ПнВтСрЧтПтСбНд
    123
45678910
11121314151617
18192021222324
25262728293031

Пошук

Архів записів

Файли
[14.09.2009][Документація кабінету]
Інструктивно-методичний лист 09-10 (0)
[14.09.2009][Навчальні плани]
Програма поглибленого вивчення інформатики (1)
[23.09.2009][Документація кабінету]
Положення про кабінет інформатики (0)
[29.09.2009][підготовка]
Гісь І.В. Розв’язування задач з програмування (для самопідготовки) (2)
[29.09.2009][підготовка]
Глова А. М. Методика підготовки до олімпіад з інформатики (з досвіду роботи) (0)
[25.10.2009][Паскаль]
Глова А. М. Презентація "Рядкові величини" (1)
[30.11.2009][Утиліти]
unlocker1.8.8.exe (0)
[30.11.2009][Утиліти]
CCleaner (0)
[03.12.2009][Графіка]
PicPick (0)
[11.12.2009][Інтернет]
QIP Infium (build 9032) (0)

Блоги
[16.09.2009]
Чому я люблю займатися на комп'ютері (4)
[20.09.2009]
Моє улюблене заняття (2)
[29.09.2009]
Роздуми про освіту і інформатику (2)

Форум
  • GENEVRI – инвестирование в разработку расширений (0)
  • игровой мир 1100АД (0)
  • Новые игры (0)
  • Книги по С++ (1)
  • Управління освіти Чернівецької міської ради (0)
  • Сивольні рядки та операції з ними (1)
  • Электронные карты и Атласы (0)
  • Avast! Home Edition (5)
  • Бесплатные программы для ПК (0)
  • STL - функції в Visual C++ 2008 (1)

  • Фотоальбом

    Матеріали
    Коментарі: 31
    Форум: 33/109
    Фото: 75
    Блоги: 3
    Новини: 80
    Завантажень: 24
    Папки: 43
    Ad-board: 3
    Гостьова книга: 3
    Тестів: 1

    Друзі сайту
    Затурцівська ЗОШ І-ІІІ ступенів ім.В.К. Липинського

    Zaturtsi © 2024 Створити безкоштовний сайт на uCoz