Найти в Дзене
Владислав Мирумян

Cтандартный вывод и строки в C++

Ссылки на прошлые части и/или следующие части: Часть 1 (введение и первая программа) Часть 3 (операторы, порядок, цикл for) Первая программа. Любая программа на C ++, которую мы напишем, будет состоять из последовательности операторов, наподобие тех, которые я упоминал в прошлой статье, заключенных в магический предмет, называемый функцией main. Например, чтобы сделать программу из утверждения 3 - 2; мы должны были бы написать следующее: int main() { 3 - 2; } В итоге, выражение «3 - 2» было сделано частью так называемой функции 'main'. Эта функция составляет основную (и в данном случае единственную) часть нашей программы. Чтобы выполнить эту функцию, мы должны выполнить выражение, которое она содержит. Выражение выполняется с помощью оценки. В нашем случае выражение «3 - 2» оценивается как число 1. Однако, что означает символ точка с запятой? В дополнение к тому, что это способ пометить конец выражение, он дает указание читателю или исполнителю программы отказаться от значения
Оглавление

Ссылки на прошлые части и/или следующие части:
Часть 1 (введение и первая программа)
Часть 3 (операторы, порядок, цикл for)

Первая программа.

Любая программа на C ++, которую мы напишем, будет состоять из последовательности операторов, наподобие тех, которые я упоминал в прошлой статье, заключенных в магический предмет, называемый функцией main.

Например, чтобы сделать программу из утверждения

3 - 2;

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

int main()
{
3 - 2;
}

В итоге, выражение «3 - 2» было сделано частью так называемой функции 'main'. Эта функция составляет основную (и в данном случае единственную) часть нашей программы.

Чтобы выполнить эту функцию, мы должны выполнить выражение, которое она содержит. Выражение выполняется с помощью оценки. В нашем случае выражение «3 - 2» оценивается как число 1.

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

Это может показаться странным. Зачем пытаться получить результат вычитания только для того, чтобы потом выбросить его?

Думайте об этом так: cкажем, Вы говорите своим друзьям, довольно повелительным тоном: «Посчитайте, сколько будет 3-2!». Обычно Вы ожидаете, что они ответят результатом: «1». Однако, если бы они не поняли Вашу просьбу, Вы могли бы уточнить, сказав: «Теперь скажите мне результат!». Сделав это, Вы бы четко заявили о своей истинной просьбе, не оставляя места для путаницы.

В компьютерном программировании у нас нет такой роскоши. Если мы хотим быть понятыми, то должны приложить дополнительные усилия и заявить прямо и заранее, что мы хотим знать результат вычислений. Поскольку мы этого не сделали, результат вычисления выражения 3-2 будет отброшен, а все усилия окажутся затрачены впустую.

Стандартный вывод.

-2

Нашим следующим шагом должно стать написание программы, которая будет сообщать результаты вычислений. Чтобы сделать это, мы должны ввести то, что называется стандартным выводом. Пока мы будем делать вид, что стандартный вывод — это лист бумаги. Другими словами, все программы, которые мы напишем в этой статье, будут «сообщать» свои результаты на листе бумаги.

При написании программы на C ++ мы будем ссылаться на стандартный вывод словом cout (произносится как си-аут). Это слово является аббревиатурой для символьного вывода (character output), потому что всё, независимо от природы, отправляется на стандартный вывод в виде символов. Без дальнейших церемоний, давайте посмотрим на ту же программу, переписанную так, чтобы она выводила свой результат:

int main()
{
cout << 3 - 2;
}

Помимо слова cout, в этой программе есть еще одна новинка, а именно символы "<<". Эти символы обозначают то, что называется оператором вставки. Он принимает значение выражения справа и отправляет его на стандартный вывод, обозначенный словом cout слева.

Имея это ввиду, давайте запустим нашу программу. Для этого Вам понадобится карандаш и лист бумаги. Напишите «STDOUT:» в верхней части Вашего документа, чтобы можно было легко понять, что он из себя представляет.

Выполнение программ на C ++ начинается с первого оператора в функции main (в этом случае в программе есть только один оператор). Сначала вычислим результат выражения 3-2 (получим число 1). Затем мы отправляем этот результат на стандартный вывод. Поскольку мы договорились, что стандартным выводом будет лист бумаги, на нем должно появиться число 1:

STDOUT:
1

Можно сказать, что слово cout используется для вывода некоторых цифр или текста на стандартный вывод. Фразы «напечатать», «выписать» и «вывести» имеют в этом контексте одно и то же значение, но термин «напечатать» является наиболее часто используемым, пережитком прошлого. Все упомянутые термины будут использоваться взаимозаменяемо.

Запуск программ онлайн.

Вы можете запускать программы, приведенные в этой статье, используя онлайн-сервис под названием C ++ shell.

Просто помните, что всем вышеперечисленным программам, должны предшествовать две дополнительные строки:

#include <iostream>
using namespace std;

Вот тестовая программа, которую Вы можете выполнить в C ++ shell:

#include <iostream>
using namespace std;
int main()
{
cout << 3 - 2;
}

Строки.

Человек, просматривающий только результат предыдущей программы, понятия не имеет, о чем она. Чтобы исправить это, мы перепишем программу так, чтобы она выводила некоторую полезную информацию, которая позволит любому потенциальному наблюдателю понять, что она делает:

int main()
{
cout << "Это моя новая программа:" << endl;
cout << "3 - 2 = " << 3 - 2 << endl;
}

Как видите, в этой программе есть несколько новинок. Во-первых, текст, заключенный в двойные кавычки: "Это моя новая программа:". Это то, что мы называем строкой. В отличие от выражений, строки отправляются на стандартный вывод в точности так, как они указаны (за некоторыми исключениями). В терминологии языков программирования буквы (знаки препинания и т.д.), из которых сделаны строки, обычно называют символами.

Вторая новинка — это новое слово: endl (обычно произносится как э-н-д-л или энд-л), которое сокращенно означает «конец строки» (end of line). Оно используется для перехода к следующей строке вывода.

Третье и последнее новшество состоит в том, что мы столкнулись с более сложной конструкцией: тут есть два оператора вставки, разделяющих слово cout, строку и слово endl. Выполняется такая конструкция слева направо, поэтому первое, что вывела бы эта программа, была бы строка «Это моя новая программа!». Далее мы встречаем слово endl. Оно также должно быть «напечатано», в результате чего Вы переходите к следующей строке вывода. Сделав это, мы полностью выполним первую половину программы:

STDOUT:
Это моя новая программа:

Давайте теперь выполним оставшуюся часть программы. Исходя из того, что выражение должно выполняться с лева направо, первое, с чем мы сталкиваемся, это строка "3 - 2 =". На первый взгляд кажется, что внутри строки есть выражение. Однако это всего лишь иллюзия. В C ++ строки не могут содержать выражений ( только простой текст). Нам просто нужно вывести строку буквально так, как указано:

STDOUT:
Это моя новая программа:
3 - 2 =

Не забывайте, что после знака равенства стоит пробел (он невидим).

Теперь мы сталкиваемся с выражением. Как мы уже знаем, выражения перед отправкой на стандартный вывод оцениваются. Поэтому на нашем листе бумаги появляется число 1. Наконец, мы «выводим» слово endl, переходя к следующей строке вывода. После того, как мы сделали всё вышеперечисленное, наш лист бумаги должен выглядеть так:

STDOUT:
Это моя новая программа:
3 - 2 = 1

Поскольку выполнение программы завершается после выполнения последнего оператора в функции main, мы можем гордо сказать, что завершили выполнение этой программы.

Эту часть туториала хочу закончить двумя короткими комментариями. Просматривая текст программы, Вы могли удивиться большому количеству операторов вставки. Если быть кратким, то операторы вставки необходимы для разделения записываемых элементов.

Во-вторых, обратили ли вы внимание на порядок выполнения выражений в программах? В программе на C ++ операторы выполняются в порядке от первого оператора вверху до последнего оператора внизу. Это означает, что в тексте наших программ есть неявное понятие времени, и что порядок утверждений влияет на результат программы.