Программа “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() просто выводит на экран сообщение, предлагающее пользователю ввести свое имя. Такое сообщение называется приглашением (prompt), поскольку оно предлагает пользователю предпринять какое-то действие. Следующие строки определяют переменную типа 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";

Перейти на страницу:
Нет соединения с сервером, попробуйте зайти чуть позже