iostream
iostream — бібліотека і відповідний заголовний файл, які використовується для організації введення-виведення в мові програмування C++. Він включений в стандартну бібліотеку C++. Назва утворена від англ. Input/Output Stream (потік введення-введення). У мові C++ і її попереднику, мові програмування Сі, немає вбудованого вводу-виводу. Натомість використовується бібліотека iostream яка керує вводом-виводом, як і stdio.h у Ci. iostream використовує об'єкти cin, cout, cerr і clog для передачі інформації між стандартними потоками введення, виведення, помилок (безбуферний) і помилок (буферний) відповідно. Будучи частиною стандартної бібліотеки C++, ці об'єкти також є частиною стандартного простору імен — std.
Зміст |
Приклад Hello, world [ред.]
Наприклад, програма Hello world може бути представлена:
#include <iostream> int main() { std::cout << "Hello, world!" << std::endl; return 0; }
Програма виведе «Hello, world!» і переведе рядок (std::endl).
Форматування виводу [ред.]
Функції [ред.]
width(int x) |
мінімальне число знаків до наступного виводу |
fill(char x) |
встановлює символ-заповнювач і повертає попередній символ-заповнювач. За умовчанням як символ-заповнювач використовується пропуск |
precision(int x) |
встановлює число значущих знаків для чисел з плаваючою крапкою |
Приклад:
cout.width(10); cout << "ten" << "four" << "four";
Маніпулятори [ред.]
endl |
перевод рядка |
flush |
вивантажує вміст буфера в потік |
dec |
міняє формат виведення числа на десятковий |
oct |
міняє формат виведення числа на вісімковий |
hex |
міняє формат виведення числа на шістнадцядковий |
ws |
витягує і видаляє символи порожніх проміжків з потоку |
showpos |
показує '+' перед додатними числами |
showpoint |
показує десяткову крапку |
noshowpoint |
приховує десяткову крапку |
Критика [ред.]
Деякі середовища не забезпечують розподілювального виконання C++ бібліотек. Приклади включають вбудовані системи і системи Windows, що управляють програмами, побудованими з MinGW. Під цими системами стандартна бібліотека C++ повинна бути статично пов'язана з програмою, що збільшує розмір програми[1], або поширювати стандартну бібліотеку разом з програмою.
Деякі реалізації стандартної бібліотеки C++ мають істотні обсяги мертвого коду. Наприклад, GNU libstdc++ автоматично конструює локаль, будуючи ostream, навіть якщо програма ніколи не використовує ніяких типів (дата, час або гроші), на які впливає локаль[2], і статично зв'язана програма «hello, world», яка використовує GNU libstdc++ <iostream>, видає виконуваний файл значно більший, ніж еквівалентна програма, яка використовує <cstdio>[3]. Але існують часткові імплементації стандартної бібліотеки C++, спроектовані для обмежених в розмірі середовищ; їхній <iostream> може вилучити опціональний код, якого не потребує програма, такий як підтримка локалі.[4]
Виноски [ред.]
- ↑ MinGW.org: Large executables
- ↑ GNU libstdc++ source code,
bits/ios_base.h - ↑ Pin Eight: RAnT (Rants, Articles, and Treatises)
- ↑ uClibc++ C++ library
