С++ для начинающих


Первый взгляд на ввод/вывод


Частью стандартной библиотеки С++ является библиотека iostream, которая реализована как иерархия классов и обеспечивает базовые возможности ввода/вывода.

Ввод с терминала, называемый стандартным вводом, “привязан” к предопределенному объекту cin. Вывод на терминал, или стандартный вывод, привязан к объекту cout. Третий предопределенный объект, cerr, представляет собой стандартный вывод для ошибок. Обычно он используется для вывода сообщений об ошибках и предупреждений.

Для использования библиотеки ввода/вывода необходимо включить соответствующий заголовочный файл:

#include <iostream>

Чтобы значение поступило в стандартный вывод или в стандартный вывод для ошибок используется оператор <<:

int v1, v2;

// ...

cout << "сумма v1 и v2 = ";

cout << v1 + v2;

cout << "\n";

Последовательность "\n" представляет собой символ перехода на новую строку. Вместо "\n" мы можем использовать предопределенный манипулятор endl.

cout << endl;

Манипулятор endl не просто выводит данные (символ перехода на новую строку), но и производит сброс буфера вывода. (Предопределенные манипуляторы рассматриваются в главе 20.)



Операторы вывода можно сцеплять. Так, три строки в предыдущем примере заменяются одной:

cout << "сумма v1 и v2 = " << v1 + v2 << "\n";

Для чтения значения из стандартного ввода применяется оператор ввода (>>):

string file_name;

// ...

cout << "Введите имя файла: ";

cin >> file_name;

Операторы ввода, как и операторы вывода, можно сцеплять:

string ifile, ofile;

// ...

cout << "Введите имя входного и выходного файлов: ";

cin >> ifile >> ofile;

Каким образом ввести заранее неизвестное число значений? Мы вернемся к этому вопросу в конце раздела 2.2, а пока скажем, что последовательность инструкций

string word;

while ( cin >> word )

  // ...

считывает по одному слову из стандартного ввода до тех пор, пока не считаны все слова. Выражение


( cin >> word )

возвращает false, когда достигнут конец файла. (Подробнее об этом – в главе 20.) Вот пример простой законченной программы, считывающей по одному слову из cin и выводящей их в cout:

#include <iostream>

#include <string>

int main ()

{

  string word;

  while ( cin >> word )

    cout << "Прочитано слово: " << word << "\n";

  cout << "Все слова прочитаны!";

}

Вот первое предложение из произведения Джеймса Джойса “Пробуждение Финнегана”:

riverrun, past Eve and Adam's

Если запустить приведенную выше программу и набрать с клавиатуры данное предложение, мы увидим на экране терминала следующее:

Прочитано слово: riverrun,

Прочитано слово: past

Прочитано слово: Eve,

Прочитано слово: and

Прочитано слово: Adam's

Все слова прочитаны!

(В главе 6 мы рассмотрим вопрос о том, как убрать знаки препинания из вводимых слов.)


Содержание раздела