Программа “Hello, World!” просто записывает текст на экран. Она осуществляет вывод. Она ничего не считывает, т.е. не получает ввода от пользователя. Это довольно скучно. Реальные программы, как правило, производят результаты на основе каких-то данных, которые мы им даем, а не делают одно и то же каждый раз, когда мы их запускаем.
string
, а целые числа — в переменные типа int
. Объект можно интерпретировать как “коробку”, в которую можно поместить значение, имеющее тип объекта.
Например, на рисунке изображен объект типа int
с именем age
, содержащий целое число 42. Используя строковую переменную, мы можем считать строку с устройства ввода и вывести ее на экран, как показано ниже.
// считать и записать имя
#include "std_lib_facilities.h"
int main()
{
cout << "Пожалуйста, введите ваше имя (затем нажмите 'enter'):\n";
string first_name; // first_name — это переменная типа string
cin >> first_name; // считываем символы в переменную first_name
cout << "Hello, " << first_name << "!\n";
}
Директива #include
и функция main()
известны нам из главы 2. Поскольку директива #include
необходима во всех наших программах (вплоть до главы 12), мы отложим ее изучение, чтобы не запутывать ситуацию. Аналогично иногда мы будем демонстрировать код, который работает, только если поместить его в тело функции main()
или какой-нибудь другой.
cout << "Пожалуйста, введите ваше имя (затем нажмите 'enter'):\n";
Будем считать, что вы понимаете, как включить этот код в полную программу, чтобы провести ее тестирование.
Первая строка функции main()
просто выводит на экран сообщение, предлагающее пользователю ввести свое имя. Такое сообщение называется string
с именем first_name
, считывают данные с клавиатуры в эту переменную и выводят на экран слово Hello. Рассмотрим эти строки по очереди.
string first_name; // first_name — это переменная типа string
Эта строка выделяет участок памяти для хранения строки символов и присваивает ему имя first_name
.
Инструкция, вводящая новое имя в программе и выделяющая память для переменной, называется
Следующая строка считывает символы с устройства ввода (клавиатуры) в переменную:
cin >> first_name; // считываем символы в переменную first_name
Имя cin
относится к стандартному потоку ввода (читается как “си-ин” и является аббревиатурой от haracter put), определенному в стандартной библиотеке. Второй операнд оператора >>
(“ввести”) определяет участок памяти, в который производится ввод. Итак, если мы введем некое имя, например Nicolas
, а затем выполним переход на новую строку, то строка “Nicolas
” станет значением переменной first_name
.
Переход на новую строку необходим для того, чтобы привлечь внимание компьютера. Пока переход на новую строку не будет выполнен (не будет нажата клавиша
Введя входную строку в переменную first_name
, можем использовать ее в дальнейшем.
cout << "Hello, " << first_name << "!\n";
Эта строка выводит на экран слово Hello за которым следует имя Nicolas (значение переменной first_name
) с восклицательным знаком (!
) и символом перехода на новую строку экрана ('\n'
).
Hello, Nicolas!
Если бы мы любили повторяться и набирать лишний текст, то разбили бы эту строку на несколько инструкций.
cout << "Hello, ";
cout << first_name;
cout << "!\n";