Г. Шилтд - Самоучитель C++ (PDF) (1114887), страница 4
Текст из файла (страница 4)
Хотя в настоящее время при работе с функциями библиотеки Сдопускается включать в программы заголовочные файлы в соответствии состилем С, такой подход не одобряется стандартом языка Standard C++. (Тоесть, он не рекомендуется.) По этой причине во всех имеющихся в книгеинструкциях ^include используется новый стиль написания заголовков программ.
Если ваш компилятор для функций библиотеки С не поддерживаетзаголовки нового стиля, просто замените их заголовками в стиле С.Поскольку заголовки нового стиля появились в C++ совсем недавно, вомногих и многих прежних программах вы их не найдете. В этих программахв соответствии со стилем С в заголовках указаны имена файлов. Ниже представлен традиционный способ включения в программу заголовка для функций ввода/вывода:#include <iostream.h>Эта инструкция заставляет компилятор включить в программу заголовочныйфайл iostream.h. Как правило, в заголовках прежнего стиля вместе с расширением .h используется то же имя, что и в соответствующих им новых заголовках.Как уже отмечалось, все компиляторы C++ поддерживают заголовки старого стиля.
Тем не менее такие заголовки объявлены устаревшими и не рекомендуются. Именно поэтому в книге вы их больше не встретите..Несмотря на повсеместное распространение в программах заголовков старого стиля, они считаются устаревшими.Пространства именКогда вы включаете в программу заголовок нового стиля, содержание этогозаголовка оказывается в пространстве имен std. Пространство имен(namespace) — это просто некая объявляемая область, необходимая для того, чтобы избежать конфликтов имен идентификаторов. Традиционно именабиблиотечных функций и других подобных идентификаторов располагалисьв глобальном пространстве имен (как, например, в С).
Однако содержаниезаголовков нового стиля помещается в пространстве имен std. Позднее мырассмотрим пространства имен более подробно. Сейчас же, чтобы пространство имен std стало видимым, просто используйте следующую инструкцию:using namespace std;Эта инструкция помещает std в глобальное пространство имен. После тогокак компилятор обработает эту инструкцию, вы сможете работать с заголовками как старого, так и нового стиля.Если вы работаете со старым компиляторомКак уже упоминалось, заголовки нового стиля и пространства имен появились в C++ совсем недавно, поэтому эти черты языка могут не поддерживаться старыми компиляторами.
Если у вас один из таких компиляторов, топри попытке компиляции первых двух строк кода, приводимых в книгепримеров программ, вы получите одно или несколько сообщений об ошибках. Обойти эту проблему просто — удалите инструкцию namespace и- используйте заголовки старого стиля. То есть замените, например, инструкции#include <iostream>using namespace std;на инструкцию^include <iostream.h>Это простое действие превратит современную программу в такую же, но втрадиционном стиле. Поскольку заголовок старого стиля считывает все своесодержание в глобальное пространство имен, необходимость в инструкцииnamespace отпадает.И еще одно замечание. Еще в течение нескольких лет вы будете встречатьпрограммы, в которых заголовки будут оформлены в старом стиле и не будет инструкций namespace.
Ваш компилятор C++ будет прекрасно справляться с такими программами. Тем не менее, что касается новых программ,вам следует использовать современный стиль, поскольку именно он определен стандартом языка Standard C++. Хотя программы прежнего стиля будутподдерживаться еще многие годы, технически они некорректны.Глава 1. Краткий обзор C++19Упражненияения]Перед тем как продолжить, попытайтесь откомпилировать представленныйвыше пример простейшей программы. Хотя эта программа не выполняет никаких действий, попытка ее компиляции поможет определить, поддерживаетли ваш компилятор современный синтаксис C++. Если он не принимаетзаголовки нового стиля и инструкцию namespace, замените их, как толькочто было описано.
Запомните, если ваш компилятор не принимает код нового стиля, вам придется сделать изменения в каждой программе этой книги.1.3. Консольный ввод и вывод в C++Поскольку C++ — это улучшенный С, все элементы языка С содержатсятакже и в C++. Это подразумевает, что все программы, написанные на С,по умолчанию являются также и программами на C++. (На самом деле имеется несколько очень незначительных исключений из этого правила, которые будут рассмотрены позже.) Поэтому можно писать программы на C++,которые будут выглядеть точно так же, как и программы на С.
Ошибки небудет, это только будет означать, что вы не смогли использовать все преимущества C++. Чтобы по достоинству оценить C++, необходимо писатьпрограммы в стиле C++.Вероятно, наиболее своеобразной чертой языка C++, используемой программистами, является подход к вводу и выводу. Хотя такие функции, какprintfQ и scanfQ, по-прежнему доступны, C++ обеспечивает иной, лучшийспособ выполнения этих операций.
В C++ ввод/вывод выполняется с использованием операторов, а не функций ввода/вывода. Оператор вывода это «, а оператор ввода — ». Как вы знаете, в С эти операторы являются,соответственно, операторами левого и правого сдвига. В C++ они сохраняют свое первоначальное значение (левый и правый сдвиг), выполняя приэтом еще ввод и вывод. Рассмотрим следующую инструкцию C++:cout « "Эта строка выводится на экран.\п";Эта инструкция осуществляет вывод строки в заранее определенный потокcout, который автоматически связывается с терминалом, когда программаC++ начинает выполняться. Это напоминает действие функции stdout вязыке С. Как и в С, терминал для ввода/вывода в C++ может быть переопределен, но пока будем считать, что используется экран.С помощью оператора вывода « можно вывести данные любого базовоготипа C++.
Например, следующая инструкция осуществляет вывод величины100.99:cout « 100.99;20Самоучитель C++В общем случае, для вывода на экран терминала используется следующаяобычная форма оператора «:cout « выражение;Здесь выражение может быть любым действительным выражением C++,включая другие выражения вывода.Для считывания значения с клавиатуры, используйте оператор ввода ».Например, в этом фрагменте целая величина вводится в num:int num;cin » num;Обратите внимание, что переменной num не предшествует амперсанд &. Каквы знаете, при вводе с использованием функции scanfQ языка С ей должныпередаваться адреса переменных.
Только тогда они смогут получить значения, вводимые пользователем. В случае использования оператора ввода C++все происходит иначе. (Смысл этого станет ясен после того, как вы большеузнаете о C++.)В общем случае для ввода значения с клавиатуры, используйте следующуюформу оператора »:cin » переменная;Расширенное толкование символов « и » является примером перегрузкиоператоров.Для правильного использования операторов ввода/вывода в C++ вы должнывключить в программу заголовочный файл iostream.h. Он является одним изстандартных заголовочных файлов C++ и поставляется с компилятором.ц Примеры£fr1.
В этой программе выводится строка, два целых числа и одно число с плавающей точкой двойной точности:^include <iostream>using namespace std;intmain()int i, j ;double d;Глава 7. Краткий обзор C++21i = 10;j = 20;d = 99.101;coutcoutcoutcoutcout«««««"Вот несколько чисел:i;' ';j;' ';cout « d;return 0;Ниже представлен результат работы программы:Вот несколько чисел: 10 20 99.101Если вы работаете с устаревшим компилятором, ему могут оказаться недоступными заголовки нового стиля и инструкции namespace, используемые вэтой и во всех остальных программах книги. Если это так, замените соответствующие инструкции описанным в предыдущем разделе способом.2. В одном выражении ввода/вывода можно выводить более одной величины.Например, версия программы, описанной в примере 1, показывает один изэффективных способов программирования инструкций ввода/вывода,^include <iostream>using namespace std;int{main()int i, j ;double d;i = 10;j = 20;d = 99.101;cout « "Вот несколько чисел: ";cout « i « ' ' « j « ' ' « d;return 0;_22СамоучительC++Здесь в строкеcout « i « ' ' « j « ' ' « d;выводится несколько элементов данных в одном выражении.
В общем случаевы можете использовать единственную инструкцию для вывода любого требуемого количества элементов данных. Если это кажется неудобным, простозапомните, что оператор вывода « ведет себя так же, как и любой другойоператор С-Н-, и может быть частью произвольно длинного выражения.Обратите внимание, что по мере необходимости следует включать в программу пробелы между элементами данных. Если пробелов не будет, то данные, выводимые на экран, будет неудобно читать.3. Это программа предлагает пользователю ввести целое число:^include <iostream>using namespace std;int main{){int i ;cout « "Введите число : " ;сап » i;cout « "Вот ваше число: " « i « "\n";return 0;Результат работы программы:Введите число: 100Вот ваше число: 100Как видите, введенное пользователем значение действительно оказывается в i.4.