Оператор вывода
В данном уроке мы рассмотрим способы вывода данных через консоль.
Для начала определимся с тем, что мы будем понимать под термином консль.
Консоль - это программные средства, обеспечивающие диалог между пользователем и программой.
Другое название консоли - интерфейс командной строки.
Для вывода сообщений пользователю через консоль мы будем использовать std::cout,
который мы использовали в предыдущем уроке в листинге 1.1: Hello, World!
(программа для вывода текста "Hello world!" на экран).
Мы также рассмотрим способ получения информации от пользователя и
сделаем наши программы более интерактивными.[1]
std::cout
Библиотека iostream содержит несколько инструментов, которые мы можем использовать.
Одним из наиболее полезных является std::cout, который позволяет выводить данные на экран. Служебное слово
cout дословно означает вывод символов (character output) [1]
Вспомним код программы из предыдущего урока:
Листинг 2.1: Hello, World!
#include <iostream>
int main() {
std::cout << "Hello, World!";
}
В эту программу мы включили iostream, чтобы у нас был доступ к std::cout.
Внутри нашей основной функции мы используем std::cout вместе с оператором вставки (<<),
чтобы отправить текст "Hello world!" на консоль для печати. При запуске программы получаем следующий результат:
Hello, World!
С помощью std::cout можно выводить не только текст, но и числа:
Листинг 2.2: Вывод чисел
#include <iostream>
int main() {
std::cout << 7;
}
Результат:
7
Использование директивы using
Программу "Hello, World!" мы можем написать иначе, например так:
Листинг 2.3: Использование направленной директивы using
#include <iostream>
using std::cout;
int main() {
cout << "Hello, World!";
}
Директива using в листинге 2.3 позволяет нам использовать более короткое имя для оператора вывода std::cout.
Мы можем опустить префикс std:: и использовать более короткое имя cout. Директива using std::cout; является необязательной,
но если мы ее опускаем, мы должны использовать более длинное имя std::cout;
Имя std означает «стандартный» (англ. standart), а префикс std:: указывает, что cout является частью набора имен,
называемых стандартным пространством имен.
Пространство имен std содержит имена для всех стандартных типов и функций C++.
Кроме std существуют и другие пространства имен, которые предоставляются сторонними разработчиками. [1]
В то время как в листинге 2.3 имя cout стало известно компилятору с помощью его направленной директивы using,
в листинге 2.4 предоставляется общая директива using, которая делает все имена в пространстве имен
std доступными для компилятора.
Листинг 2.4: Использование общей директивы using
#include <iostream>
using namespace std;
int main() {
cout << "Hello, World!";
}
Данный подход имеет преимущества для написания программ. Общая директива позволяет программистам
использовать более короткие имена, что позволяет сократить время написания кода.
Переход на новую строку
Как вы думаете, что выведет на экран программа из листинга 2.5?
Листинг 2.5: Использование нескольких операторов cout
#include <iostream>
using namespace std;
int main() {
cout << "Hi!";
cout << "My name is Alex.";
}
Вопреки нашим ожиданиям результат выполнения программы будет следующим:
Hi!My name is Alex.
Если мы хотим фразу на новую строку, нам нужно указать консоли, когда перемещать курсор на следующую строку.
Один из способов сделать это - использовать std::endl. При выводе с помощью std::cout, std::endl печатает
символ новой строки на консоли (в результате чего курсор перемещается в начало следующей строки).
Дословно endl означает «конец строки» (англ. end line). [1]
Листинг 2.6: Переход на новую строку с помощью std::endl
#include <iostream>
using namespace std;
int main() {
cout << "Hi!" << endl;
cout << "My name is Alex." << endl;
}
Результат выполнения программы:
Кроме std::endl можно использовать специальный символ "\n", который также позволяет переместиться на новую строку:
Листинг 2.7: Переход на новую строку с помощью символа "\n"
#include <iostream>
using namespace std;
int main() {
cout << "Hi!\n";
cout << "My name is Alex.\n";
}
Результат выполнения программы:
Обратите внимание на то, что символ "\n" указывается внутри ковычек.
Источники
- Richard L. Halterman. Fundamentals of Programming C++. School of Computing Southern Adventist University., February 5, 2019
- Learn C++., 2018. https://www.learncpp.com/