Скачать 4.44 Mb.
|
Пространства Когда вы включаете в программу заголовок нового стиля, содержание этого заголовка оказывается в пространстве имен std. Пространство имен (namespace) — это просто некая объявляемая область, необходимая для того, чтобы избежать конфликтов имен идентификаторов, библиотечных функций и других подобных в глобальном пространстве имен (как, например, в С). Однако содержание заголовков нового стиля помещается в пространстве имен std. Позднее мы рассмотрим пространства имен более подробно. Сейчас же, чтобы пространство имен std стало видимым, просто используйте следующую инструкцию: using namespace std; инструкция помещает std в глобальное пространство имен. После того компилятор обработает эту инструкцию, вы сможете работать с заголов-как старого, так и нового стиля. Если вы работаете со старым компилятором Как уже упоминалось, заголовки нового стиля и пространства имен лись в C++ совсем недавно, поэтому эти черты языка могут не под ваться старыми компиляторами. Если у вас один из таких компиляторов, то при попытке компиляции первых двух строк кода, приводимых в книге примеров программ, вы получите одно или несколько сообщений об ошибках. Обойти эту проблему просто — удалите инструкцию namespace и- используйте заголовки старого стиля. То есть замените, например, инструкции #include using namespace std; на инструкцию ^include Это простое действие превратит современную программу в такую же, но в традиционном стиле. Поскольку заголовок старого стиля считывает все свое содержание в глобальное пространство имен, необходимость в инструкции namespace отпадает. И еще одно замечание. Еще в течение нескольких лет вы будете встречать программы, в которых заголовки будут оформлены в старом стиле и не будет инструкций namespace. Ваш компилятор C++ будет прекрасно справ-с такими программами. Тем не менее, что касается новых программ, следует использовать современный стиль, поскольку именно он опреде-стандартом языка Standard C++. Хотя программы прежнего стиля будут еще многие годы, технически они обзор C++ 19 Упражнения Перед тем как продолжить, попытайтесь откомпилировать п выше пример простейшей программы. Хотя эта программа не выполняет никаких действий, попытка ее компиляции поможет определить, поддерживает ли ваш компилятор современный синтаксис C++. Если он не принимает заголовки нового стиля и инструкцию namespace, замените их, как только что было описано. Запомните, если ваш компилятор не принимает код нового стиля, вам придется сделать изменения в каждой программе этой книги. 1.3. Консольный ввод и вывод в 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++ и поставляется с компилятором. еры 1. В этой программе выводится строка, вающей точкой двойной точности: ^include using namespace std; int main О целых числа и одно число с пла- int i, j; double d; 7. Краткий обзор C++ 2 1
представлен результат работы программы: Вот несколько чисел: 10 20 99.101 Если вы работаете с устаревшим компилятором, ему могут оказаться недоступными заголовки нового стиля и инструкции namespace, используемые в этой и во всех остальных программах книги. Если это так, замените соответ-инструкции описанным в предыдущем разделе способом. 2. В одном выражении ввода/вывода можно выводить более одной Например, версия программы, описанной в примере 1, показывает один из эффективных способов программирования инструкций ввода/вывода, ^include 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; выводится несколько элементов данных в одном выражении. В общем случае вы можете использовать единственную инструкцию для вывода любого требуемого количества элементов данных. Если это кажется неудобным, просто запомните, что оператор вывода « ведет себя так же, как и любой другой оператор C++, и может быть частью произвольно длинного выражения. Обратите внимание, что по мере необходимости следует включать в программу пробелы между элементами данных. Если пробелов не будет, то данные, выводимые на экран, будет неудобно читать. 3. Это программа предлагает пользователю ввести целое число: #include using namespace std; int main О { int i ; cout « "Введите число : сап » i; cout « "Вот ваше число: с i « "\n" return 0; Результат работы программы: Введите число: 100 Вот ваше число: 100 Как видите, введенное пользователем значение действительно оказывается в L 4. Следующая программа — это программа ввода целого, числа с точкой и строки символов. В ней для ввода всего перечисленного использу-инструкция. ^include using namespace std; int main (} { int i; float f; char s[80] ; cout « ' "Введите целое, число с плавающей точкой и строку: cin » i » f » s; 1. Краткий обзор C++ 23_ cout « "Вот ваши данные: "; cout « i « ' ' « f « ' ' « s; return 0 ; Как видно из этого примера, можно ввести в одной инструкции ввода столько элементов данных, сколько нужно. Как и в С, различные элементы данных при вводе должны быть отделены друг от друга (пробелами, табуляциями или символами новой строки). При считывании строки ввод будет остановлен после считывания первого разделительного символа. Например, если вы 10 100.12 Это проверка то на экран 10 100.12 Это Так происходит потому, что считывание строки прекращается при пробела после слова Это. Остаток строки остается в буфере ввода, в нии следующей операции ввода. (Это похоже на ввод строки с использова-scanfQ в формате %s.) 5. По умолчанию при использовании оператора » буферизуется весь строки. Это означает, что до тех пор, пока вы не нажмете клавишу , информация не будет передана в вашу программу. (В языке С scanf() также буферизует ввод строки, поэтому такой стиль ввода не быть для вас чем-то новым.) Для исследования построчно-буферизованного ввода рассмотрим следующую программу: ttinclude using namespace std; int main() { char ch; cout « "Вводите символы, для окончания ввода введите х. \п"; do { cout « ":"; сin» ch; } while (ch ! = 'x') ; return 0; Когда вы протестируете эту программу, то убедитесь, что очередного символа необходимо нажимать клавишу . 24 Самоучитель C++
/* Преобразуйте эту программу на С в соответствии со программирования C++. Эта программа подсчитывает наименьшее общее кратное V finclude int main(void) I int a, b, d, min; printf ("Введите два scanf("%d%d", sa, sb); min = a > b ? b: a ; for (d=2; d if -0) ) break; if (d==mi ) { Нет общего кратного\п"); return 0 ; } меньшее общее кратное равно d) return 0; } 1.4. Комментарии в C++ В C++ комментарии в программу можно включать двумя различными способами. Первый способ — это использование стандартного механизма, такого же, как в С, т. е. комментарий начинается с /* и оканчивается */• Как и в С, в C++ этот тип комментария не может быть вложенным. Вторым способом, которым вы можете писать комментарии в программах C++, является однострочный комментарий. Однострочный комментарий начинается с символов // и заканчивается концом строки. Другого символа, помимо физического конца строки (такого, как возврат каретки/перевод строки), в однострочном комментарии не используется. 1. Краткий обзор C++£ 5_ Обычно программисты C++ используют стиль С для многострочных комментариев, а для коротких замечаний используют однострочные комментарии в соответствии со стилем C++. 1. Программа, в которой есть стили комментариев как С, так и C++: Этот комментарий в стиле С ! . Данная программа определ четность целого */ |
П равила пользования услугами информационно-библиотечного центра Правила пользования услугами информационно-библиотечного центра – документ, фиксирующий взаимоотношения пользователя с информационно-библиотечным... |
Ханк Рейнвотер Как пасти котов. Наставление для программистов, руководящих... Посвящается Дэвиду, моему любимому сыну, память о тебе меня неизменно вдохновляет |
||
Дипломная работа Степень удовлетворенности пользователей в документах по музыкальному искусству 25 |
Задача учителя-методиста в современной школе научить созданию новых... Созданы педагогические папки-копилки таких учителей как Ухмусултанова А. С., Нурмагомедова Н. Д., Яшувова А. М., Карамурзаева Б.... |
||
Форм массовой работы Традиционные и инновационные, серьезные и игровые формы массового формирования информационной культуры пользователей |
«Поддержка дистанционных олимпиад: новые идеи и технологии» В данных тезисах рассматривается вопрос быстрого и удобного создания сайтов олимпиад с помощью типового сайта поддержки олимпиад,... |
||
Флот в первой половине XIX века Император Павел I и военно-морские силы Поэтому флот России, пользовавшийся в конце XVIII века заслуженной славой и состоявший из опытных и смелых моряков, вместе с тем... |
Приказ №50/3 от 30. 08. 2013г. Анализ работы библиотеки мкоу «Трусовская... В библиотеке образовательного учреждения художественной литературы насчитывается 3703 экземпляра, учебной 1588, электронных изданий... |
||
Реферат Дипломный проект посвящен модернизации локальной сети организации «Надежный Контакт» Проанализирован список задач решаемых с помощью локальной сети; также были изучены аппаратные и программные средства, необходимые... |
Курсовая работа студента 342 группы Матвеева Н. Н. «Реализация отмены/повтора... Средств разработчиков и проектировщиков по можно отдельно выделить так называемые case-средства (case computer-Aided Software Engineering).... |
Поиск на сайте Главная страница Литература Доклады Рефераты Курсовая работа Лекции |