Частью стандартной библиотеки С++ является библиотека iostream, которая реализована как иерархия классов и обеспечивает базовые возможности ввода/вывода. Ввод с терминала, называемый стандартным вводом, “привязан” к предопределенному объекту cin. Вывод на терминал, или стандартный вывод, привязан к объекту cout. Третий предопределенный объект, cerr, представляет собой стандартный вывод для ошибок. Обычно он используется для вывода сообщений об ошибках и предупреждений. Для использования библиотеки ввода/вывода необходимо включить соответствующий заголовочный файл:
1 |
#include <iostream></iostream> |
Чтобы значение поступило в стандартный вывод или в стандартный вывод для ошибок используется оператор «:
1 2 3 4 5 |
int v1, v2; // ... cout « "сумма v1 и v2 = "; cout « v1 + v2; cout « "\n"; |
Последовательность “\n” представляет собой символ перехода на новую строку. Вместо “\n” мы можем использовать предопределенный манипулятор endl.
1 |
cout « endl; |
Манипулятор endl не просто выводит данные (символ перехода на новую строку), но и производит сброс буфера вывода. Операторы вывода можно сцеплять. Так, три строки в предыдущем примере заменяются одной:
1 |
cout « "сумма v1 и v2 = " « v1 + v2 « "\n"; |
Для чтения значения из стандартного ввода применяется оператор ввода ( »):
1 2 3 4 |
string file_name; // ... cout « "Введите имя файла: "; cin » file_name; |
Операторы ввода, как и операторы вывода, можно сцеплять:
1 2 3 4 |
string ifile, ofile; // ... cout « "Введите имя входного и выходного файлов: "; cin » ifile » ofile; |
Каким образом ввести заранее неизвестное число значений?.
1 2 3 |
string word; while ( cin » word ) // ... |
считывает по одному слову из стандартного ввода до тех пор, пока не считаны все слова. Выражение
1 |
( cin » word ) |
возвращает false, когда достигнут конец файла. Вот пример простой законченной программы, считывающей по одному слову из cin и выводящей их в cout:
1 2 3 4 5 6 7 8 9 |
#include <iostream> #include <string> int main () { string word; while ( cin » word ) cout « "Прочитано слово: " « word « "\n"; cout « "Все слова прочитаны!"; }</string></iostream> |
Вот первое предложение из произведения Джеймса Джойса “Пробуждение Финнегана”:
1 |
riverrun, past Eve and Adam's |
Если запустить приведенную выше программу и набрать с клавиатуры данное предложение, мы увидим на экране терминала следующее:
1 2 3 4 5 6 |
Прочитано слово: riverrun, Прочитано слово: past Прочитано слово: Eve, Прочитано слово: and Прочитано слово: Adam's Все слова прочитаны! |