- •6 Глава 1
- •12 Глава 1
- •14 Глава 1
- •16 Глава 1
- •18 Глава 1
- •20 Глава 1
- •22 Глава 1
- •24 Глава 1
- •26 Глава 1
- •31 Глава 1
- •34 Глава 2
- •36 Глава 2
- •Puc. 2.4. Дополнительные опции консольного приложения Win32
- •38 Глава 2
- •40 Глава 2
- •42 Глава 2
- •44 Глава 2
- •48 Глава 2
- •50 Глава 2
- •52 Глава 2
- •54 Глава 2
- •56 Глава 2
- •58 Глава 2
- •60 Глава 2
- •62 Глава 2
- •64 Глава 2
- •66 Глава 2
- •68 Глава 2
- •70 Глава 2
- •74 Глава 2
- •76 Глава 2
- •79 Глава 2
- •82 Глава 2
- •84 Глава 2
- •86 Глава 2
- •88 Глава 2
- •92 Глава 2
- •94 Глава 2
- •96 Глава 2
- •98 Глава 2
- •103 Глава 2
- •105 Глава 2
- •107 Глава 2
- •110 Глава 2
- •115 Глава 3
- •119 Глава 3
- •121 Глава 3
- •123 Глава 3
- •125 Глава 3
- •129 Глава 3
- •131 Глава 3
- •133 Глава 3
- •139 Глава 3
- •141 Глава 3
- •143 Глава 3
- •145 Глава 3
- •148 Глава 3
- •150 Глава 3
- •155 Глава 3
- •165 Глава 4
- •168 Глава 4
- •170 Глава 4
- •173 Глава 4
- •175 Глава 4
- •178 Глава 4
- •184 Глава 4
- •186 Глава 4
- •188 Глава 4
- •190 Глава 4
- •192 Глава 4
- •194 Глава 4
- •198 Глава 4
- •201 Глава 5
- •203 Глава 5
- •205 Глава 5
- •207 Глава 5
- •213 Глава 5
- •217 Глава 5
- •219 Глава 5
- •221 Глава 5
- •223 Глава 5
- •225 Глава 5
- •227 Глава 5
- •232 Глава 5
- •234 Глава 5
- •236 Глава 5
58 Глава 2
Базовые операции ввода-вывода
Здесь вы только поверхностно ознакомитесь с вводом и выводом в "родном" С++ — настолько, чтобы использовать его в примерах в процессе дальнейшего изучения языка. Это совсем не трудно, даже наоборот. А при программировании для Windows оно и вовсе не понадобится. Ввод и вывод С++ вращается вокруг понятия потоков данных; данные можно вставлять в выходной поток и принимать из входного. Вы уже видели, что стандартный выходной поток ISO/ANSI С++ в командную строку на экране называется cout. Дополняющий его входной поток с клавиатуры известен под именем cin.
Ввод с клавиатуры
Вы получаете ввод с клавиатуры через поток cin, используя для этого операцию извлечения из потока ». Чтобы прочитать два целых значения с клавиатуры в пере- менные numl и num2, можно написать следующий оператор:
Операция извлечения » "указывает" в направлении, куда передаются данные — в данном случае, из cin в каждую из двух переменных по очереди. Любые ведущие про- белы пропускаются, и первое целое значение, введенное с клавиатуры, поступает в переменную numl. Так происходит потому, что оператор ввода выполняется слева на- право. Любые пробелы, следующие за numl, игнорируются, и второе введенное целое значение читается в num2. Между следующими друг за другом значениями должны быть какие-нибудь пробельные символы, чтобы их можно было разделить. Операция потокового ввода завершается, когда вы нажимаете клавишу <Enter>, и выполнение программы продолжается со следующего оператора. Конечно, могут возникать ошиб- ки, если вы введете некорректные данные, но я предполагаю, что вы всегда все дела- ете правильно!
Значения с плавающей точкой читаются из клавиатурного ввода точно таким же образом, как целые числа, и, конечно, вы можете смешивать их. Потоковый ввод и его операции автоматически распознают переменные и данные любого фундамен- тального типа. Например, в следующих операторах:
последняя строка читает целое значение в numl, затем значение с плавающей точкой в factor и, наконец, еще одно целое в num2.
Вывод в командную строку
Вы уже видели в рассмотренных выше примерах вывод в командную строку, но я все равно хочу вернуться к этой теме. Вывод информации на дисплей осуществляют- ся способом, дополняющим ввод. Как вы уже видели, поток вывода называется cout, и для передачи данных в него используется операция вставки «. Эта операция также "указывает" в направлении движения данных. Вы уже применяли ее для вывода тек- стовой строки, заключенной в кавычки. Я могу продемонстрировать процесс вывода значения переменной на примере простой программы.
Данные,
переменные
и
вычисления
Предположим,
что вы уже создали новый пустой проект,
добавили к нему новый
исходный файл
и построили исполняемую программу.
Ниже показан код, который
необходимо
поместить в исходный файл после создания
проекта Ех2_02.
Первый оператор в теле main () объявляет и инициализирует две целочисленных переменных — numl и num2. За ним следуют два оператора вывода, первый из кото- рых перемещает позицию экранного курсора на новую строку. Поскольку операторы вывода выполняются слева направо, второй оператор отображает значение перемен- ной numl, за которым следует значение num2.
Когда вы скомпилируете и запустите приведенный выше код, то получите на экра- не следующий вывод:
12345678
Вывод правильный, но не слишком полезный. На самом деле вам нужно увидеть два отдельных значения, разделенных хотя бы одним пробелом. По умолчанию вы- ходной поток просто отображает десятичные цифры, представляющие значение, что не предполагает какого-либо разделения выводимых значений пробелами. А потому у вас нет никакой возможности сказать, где заканчивается одно значение и начинается другое.
Форматирование вывода
Проблему, связанную с отсутствием пробелов между значениями, можно испра- вить довольно просто — вставив пробел в поток вывода между двумя значениями. Это можно сделать, заменив следующий оператор вашей оригинальной программы:
Просто подставьте вместо него оператор:
Конечно, если у вас несколько строк вывода, и вы хотите выровнять колонки, то вам понадобятся какие-то дополнительные возможности, поскольку вы не знаете, сколько знаков будет в каждом значении. С этой ситуацией можно справиться, ис- пользуя то, что называется манипуляторами. Манипулятор модифицирует способ управления выводом данных в поток (или вводом из потока).