Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Неинициализированные переменнее
Может получиться так, что переменной, которая определена в тексте программы, так никогда и не присваивается никакое значение. Это может произойти по причине того, что функция scanf() прервала работу, либо потому, что вы забыли написать инструкцию ввода значения для этой переменной. Могут быть и другие причины. Если переменную, которой не присвоено значение, использовать в инструкциях вывода данных, компилятор может не сообщить об ошибке, но отображенная на дисплее информация будет лишена смысла. Почему это происходит? При включении компьютера области памяти, которые не используются операционной системой, заполнены случайными данными. Когда С++ резервирует память для переменных при их определении, то содержимое этих областей памяти не меняется до тех пор, пока переменная не инициализирована или пока ей не присвоены введенные данные. Поэтому, если в программе в качестве параметра функции вывода используется переменная, которой не было присвоено к этому моменту никакого значения, на экране появятся те случайные данные, что все еще хранятся в памяти. Но это еще не самое худшее. Если подобная переменная используется при расчетах, компилятор С++ тоже не сообщит об ошибке, но при этом все полученные результаты будут лишены смысла, а поскольку вы не были предупреждены о том, что произошло, вы можете принять их как вполне достоверные. Чтобы избежать неприятностей, многие программисты присваивают начальные значения всем переменным. Можно присвоить ноль в качестве начального значения числовой переменной и пробел символьной и строковой переменным: int count = 0; char initial = ' '; float rate = 0.0; Разумеется, логика программы может потребовать присваивания других начальных значений. Поступив подобным образом, можно, как минимум, избежать появления на экране бессмысленных символов, если с функцией вывода будет использована переменная, которой не присвоено никакого значения. Позже вы узнаете, как протестировать список переменных, чтобы убедиться, что они имеют правильные значения. Помните: чистый вход — чистый выход. В табл. 6 собраны все средства ввода данных, о которых говорилось в этой главе.
Функция вывода cout
Все обсуждавшиеся ранее приемы программирования относятся к выводу даныных как в языке С, так и С++. Однако язык С++ имеет дополнительный способ вывода данных всех типов.
В С++ существует стандартный поток вывода cout, позволяющий в сочетании с двумя символами «меньше» («), которые называются оператором вставки, отображать литералы или значения констант и переменных без использования указателей формата. Если у вас есть компилятор С++, посмотрите документацию к нему. Не исключено, что необходим специальный файл заголовков для того, чтобы иметь возможность использовать преимущества стандартного потока вывода cout и стандартного потока ввода cin (о нем вы прочтете в следующей главе).
Таблица 6
Основные средства ввода данных в языке Си/Си++
Для некоторых компиляторов, например, необходимо включить файл STREAM. H с помощью директивы #include в начале программы.
Рис. 5. Стандартный поток вывода.
Структура инструкции, использующей cout, показана на рис. 5. После cout надо ставить два знака <. Они указывают cout отобразить помещенную после них информацию. Информация может быть представлена в виде литерала (тогда ее заключают в кавычки) либо имени константы или переменной.
Рассмотрим инструкцию cout<<"Привет, меня зовут Сэм. Мы с вами уже встречались"; При ее выполнении произойдет вывод на дисплей строки, заключенной в кавычки. Инструкция int count; count = 4509; cout<<count; отобразит значение переменной с именем count – число 4509. Используя один стандартный поток вывода cout, можно отобразить несколько аргументов. Между собой аргументы разделяются операторами вставки, как это продемонстрировано на рис. 6. Например, инструкция int age; age = 43; cout «"Вам исполнилось " «age «" года."; отображает текст Вам исполнилось 43 года.
Рис. 6. Вывод нескольких аргументов с помощью cout
Стандартный поток вывода cout отображает каждый пункт, указанный с помощью оператора вставки, в том порядке, в каком они записаны в инструкции. Так же, как и функция printf(), cout не добавляет никаких команд новой строки после отображения данных. Чтобы перейти к новой строке, там, где вы хотите ее начать, надо добавить управляющий код \n, как это показано на рис. 6. Стандартный поток вывода cout не требует обязательного использования указателей формата, но позволяет их ввести. С помощью указателей формата можно определять ширину поля, количество пробелов и число знаков после точки в вещественных числах. Описание форматирования вывода при использовании cout не входит в задачу этой книги. Если у вас есть компилятор Си++, вы можете подробно прочитать об этом в его описании. Не забудьте посмотреть в документации, надо ли включать специальные файлы заголовков при использовании cout. Одна из особенностей языка С++ - так называемая перегрузка – делает необязательным использование указателей формата. В отличие от функции printf(), которая требует обязательного указания формата данных, cout при передаче параметров сам определяет формат на основании типа получаемых данных. Этот процесс и называется перегрузкой.
Таблица 7 Средства вывода информации в языке С++.
ОПЕРАЦИИ И ВЫРАЖЕНИЯ
|
||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2017-02-05; просмотров: 310; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.142.173.232 (0.012 с.) |