Литмир - Электронная Библиотека
A
A

cout << "Пожалуйста, введите ваше имя (затем нажмите 'enter'):\n";

Будем считать, что вы понимаете, как включить этот код в полную программу, чтобы провести ее тестирование.

Первая строка функции

main()
 просто выводит на экран сообщение, предлагающее пользователю ввести свое имя. Такое сообщение называется приглашением (prompt), поскольку оно предлагает пользователю предпринять какое-то действие. Следующие строки определяют переменную типа 
string
с именем 
first_name
, считывают данные с клавиатуры в эту переменную и выводят на экран слово Hello. Рассмотрим эти строки по очереди.

string first_name; // first_name — это переменная типа string

Эта строка выделяет участок памяти для хранения строки символов и присваивает ему имя

first_name
.

Программирование. Принципы и практика использования C++ Исправленное издание - _018.png

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

Следующая строка считывает символы с устройства ввода (клавиатуры) в переменную:

cin >> first_name; // считываем символы в переменную first_name

Имя 

cin
относится к стандартному потоку ввода (читается как “си-ин” и является аббревиатурой от haracter put), определенному в стандартной библиотеке. Второй операнд оператора 
>>
(“ввести”) определяет участок памяти, в который производится ввод. Итак, если мы введем некое имя, например
Nicolas
, а затем выполним переход на новую строку, то строка “
Nicolas
” станет значением переменной
first_name
.

Программирование. Принципы и практика использования C++ Исправленное издание - _019.png

Переход на новую строку необходим для того, чтобы привлечь внимание компьютера. Пока переход на новую строку не будет выполнен (не будет нажата клавиша <Enter>), компьютер просто накапливает символы. Эта “отсрочка” дает нам шанс передумать, стереть некоторые символы или заменить их другими перед тем, как нажать клавишу <Enter>. Символ перехода на новую строку не является частью строки, хранящейся в памяти.

Введя входную строку в переменную 

first_name
, можем использовать ее в дальнейшем.

cout &lt;&lt; &quot;Hello, &quot; &lt;&lt; first_name &lt;&lt; &quot;!\n&quot;;

Эта строка выводит на экран слово Hello за которым следует имя Nicolas (значение переменной

first_name
) с восклицательным знаком (
!
) и символом перехода на новую строку экрана (
'\n'
).

Hello, Nicolas!

Если бы мы любили повторяться и набирать лишний текст, то разбили бы эту строку на несколько инструкций.

cout &lt;&lt; &quot;Hello, &quot;;

cout &lt;&lt; first_name;

cout &lt;&lt; &quot;!\n&quot;;

Однако мы не страдаем графоманией и, что еще важнее, — очень не любим лишние повторы (поскольку любой повтор создает возможность для ошибки), поэтому объединили три оператора вывода в одну инструкцию.

Обратите внимание на то, что мы заключили выражение 

Hello
в двойные кавычки, а не указали имя
first_name
. Двойные кавычки используются для работы с литеральными строками. Если двойные кавычки не указаны, то мы ссылаемся на нечто, имеющее имя.

cout &lt;&lt; &quot;Имя &quot; &lt;&lt; &quot; — &quot; &lt;&lt; first_name;

Здесь строка "

Имя
" представляет собой набор из трех символов, а имя
first_name
позволяет вывести на экран значение переменной 
first_name
, в данном случае 
Nicolas
. Итак, результат выглядит следующим образом:

Имя — Nicolas

3.2. Переменные

 

Программирование. Принципы и практика использования C++ Исправленное издание - _001.png
 В принципе, не имея возможности хранить данные в памяти так, как показано в предыдущем примере, с помощью компьютера невозможно сделать ничего интересного. Место, в котором хранятся данные, называют объектами. Для доступа к объекту необходимо знать его имя. Именованный объект называется переменной и имеет конкретный тип (например,
int
или
string
), определяющий, какую информацию можно записать в объект (например, в переменную типа 
int
 можно записать число 
123
, а в объект типа 
string
— строку символов "
Hello, World!\n
", а также какие операции к нему можно применять (например, переменные типа 
int
можно перемножать с помощью оператора
*
, а объекты типа
string
можно сравнивать с помощью оператора 
&lt;=
). Данные, записанные в переменные, называют значениями. Инструкция, определяющая переменную, называется (вполне естественно) определением, причем в определении можно (и обычно желательно) задавать начальное значение переменной. Рассмотрим следующий пример:

string name = &quot;Annemarie&quot;;

int number_of_steps = 39;

Эти переменные можно изобразить следующим образом:

Программирование. Принципы и практика использования C++ Исправленное издание - _020.png

Мы не можем записывать в переменную значение неприемлемого типа.

string name2 = 39;   // ошибка: 39 — это не строка

int number_of_steps = &quot;Annemarie&quot;; // ошибка: &quot;Annemarie&quot;

                                   // — не целое число

Компилятор запоминает тип каждой переменной и позволяет вам использовать переменную лишь так, как предусмотрено ее типом, указанным в определении.

32
{"b":"847443","o":1}