Потоки в мові Си++
План:
1.Що таке потоки введення-виводу і як вони використовуються
2.Як за допомогою потоків управляти введенням і виведенням даних
3.Як за допомогою потоків записувати інформацію у файл і потім прочитувати її
Інкапсуляція
Інкапсуляція за допомогою потоків
Буферизація
Буфер |
Відкривається |
наповнюється |
зливний вентиль, і |
даними, як |
вода (дані) |
закритий бак — |
зливається з бака |
Буферизація
Повторне наповнення |
Очищення буфера |
бака |
подібне до |
|
екстреного зливу |
Потоки і буфери
У C++ застосовується об'єктно-орієнтований підхід до реалізації обміну даними з потоками, що буферизують.
•Клас streambuf управляє буфером, тому його функції надають можливість наповнювати, спорожняти і очищати буфер,
атакож виконувати з ним інші операції.
•Клас ios є базовим для класів потоків введення-виводу. Як змінна-член класу ios виступає об'єкт streambuf.
•Класи istream і ostream є похідними від класу ios і
відповідають відповідно за потокове введення і виведення даних.
• Клас iosteam є похідним від класів istream і ostream і забезпечує методи введення-виводу для друку на екран.
• Класи fstream використовуються для введення-виводу з файлів
Стандартні об'єкти введення-
виводу
При запуску програми, що включає класи iostreams, створюються і ініціюються чотири об'єкти.
Бібліотека класу iostream вбудована в компілятор. Аби додати в свою програму методи цього класу, досить в перших рядках програми включити вираження #include<iostream>.
•Об'єкт cin обробляє введення з клавіатури.
•Об'єкт cout обробляє вивід на екран.
•Об'єкт cerr обробляє виведення помилок, що не
буферизує, на стандартний пристрій виведення повідомлень про помилки, тобто на екран. Оскільки вивід не буферизує, то всі дані, що направляються в сerr, відразу ж виводяться пристроєм виводу.
• Об'єкт clog обробляє повідомлення, що буферизують, про помилки, які виводяться на стандартний пристрій виведення повідомлень про помилки (екран).
Виведення даних за допомогою cin
Глобальний об'єкт cin відповідає за
введення даних і стає доступним при включенні в програму класу iostream
Для введення даних використовується наступний синтаксис".
int someVariable;
cout << "Enter а number: "; cin >> someVariable
Використання cin для введення даних різних типів
25:cout << "Long:\t" << myLong << endl;
26:cout << "Double:\t" << myDouble << endl;
27:cout << "Float:\t" << myFloat << endl;
28:cout << "Unsigned:\t" <<myUnsigned << endl;
29:return 0;
30:}
Результат: int: 2 Long: 70000
Double: 987654321 Float: 3.33 Unsigned: 25
Int: 2 Long: 70000
Double: 9.87654e+08 Float: 3.33 Unsigned: 25
У рядках 7—11 оголошуються змінні різних типів. У рядках 13—22 користувачеві пропонується ввести значення для цих змінних, після чого результати виводяться в рядках 24—28 (за допомогою cin).
Інформація, що виводиться програмою, говорить про те, що змінні записуються і виводяться відповідно до їх типа