Главная » Просмотр файлов » Г. Шилдт - Полный справочник по C++

Г. Шилдт - Полный справочник по C++ (1109478), страница 28

Файл №1109478 Г. Шилдт - Полный справочник по C++ (Г. Шилдт - Полный справочник по C++) 28 страницаГ. Шилдт - Полный справочник по C++ (1109478) страница 282019-04-28СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 28)

Стандартная библиотечная функция деев() представляет собой классический пример передачи массива в качестве параметра. Рассмотрим се аналог кдеев(), хотя реальная функция деев () намного сложнее. /* Упрошенный вариант стандартной библиотечной функции деев(). */ спат *хдетв(сЬаг *я) ( сЬат сЬ, *р> 1пг р = я> /* Функция хдетв() возвращает указатель на строку в */ тот(Г=О> с<80> ++с)( сЬ = детсЬат()> яи1тсЬ (сЫ ( саяе '~п'> в[с) = '>О'> /* Признак конца строки */ тегптп рг саве '>Ь'> 1г(гьо) Ьгеа)г> г)егаи1т> я[с) = сЬ; ) ) я[79) = ''>О' > гетптп р> ) Аргументом функции хдеев() должен быть указатель на символьную переменную.

Разумеется, в качестве аргумента ьголо>о задать имя символьного массива, которое по определению является указателем типа сЬат *. Сначала функция хдеев() выполняет цикл тот, счетчик которого изменяется с 0 до 79. Зто предотвращает ввод с клавиатуры более длинной строки. Если пользователь попытается ввести больше 80 символов, функция выполнит оператор теептп.

[В реальной функции деев() этого ограничения Часть [. Основы языка С++: подмножество С нот.) Поскольку в языкс СгС+э нот встроснной провсрки выхода индекса массива за прслслы допусзимого диапазона, слслуст убедиться, что любой массив, псрславаемый функции жяевв(), может вмсспзть ло )(О символов. Каждый символ, ввсденный с клавиатуры, помсшастся в строку. При ~пжтпин клавиши <влскврлсн> счстчик с уменьшается на 1, удаляя из массива последний символ. При ~ взжатии клавиши <кнтвв> в конон строки помещается нулсвой байт.

Поскольку функция ндека() моднфицнруст фактичсский аргумснт, после выхода из нсс массив и булат содержать символы, ввсдснныс пользоватслсм. 1 Аргументы функции ваа(): агдс и агяч Иногда бываст удобно вводить ланныс, указывая их в команлной строке при запуске программы. Для этого обычно используются аргумснты функции ваьп(). Аргумснтами комаплнои строки называ|отся дашзыс, указанныс в командной строке операционной системы вслсл за имсцсм программы.

Например, при компиляции программы часто используют командную строку сс имл програлыгы Злссь парамстр цил программы является аргумснтом командной строки, который задаст имя компилируемой программы. Для получспия аргументов командной строки прсдназначсны вот)юснныс аргументы функции гаахп(): акпзг и нкпс. Цслочислснный параметр ак(гс содержит количество аргументов команлнои строки. Его значение нс можст быть мсньшс !, поскольку имя программы считастся псрвым аргументом, Параметр акдт представляет собой указатсль на массив символьных указатслсй. Каждый элсмснт этого массива ссыластся на аргумснт командной строки. Всс аргумснты команлной строки являются строками — ввслснныс числа должны конвертироваться в соотвстствуюшсе вцутрсннсс прслставление. Рассмотрим простую программу, которая выводит на экран строку "Привст," и ваше имя, введенное в командной строке.

Мупс1иде <зало.ц> ((1пс1ос)е <зМ11Ь. Ь> 1пь гяа1п(ьпь атдс, сцат "агпч() ) ( 1Г(атдс(=-2) ргупсу("вы запыли указать свое иия. (п")г екьс (1); ) > рх1пвй("Привет, Ъз!", ассу(1)); гесьсп О; ) Если в командной строке набрать имя программы и указать свое имя, например, пажа иван, то программа вывслст на экран строку "Привет, Иван!".

Во многих опсрационных системах каждый аргумент командной строки должон отделяться пробелом или знаком табуляции. Запятыс, точки с запятой и другие знаки пунктуации разлелитслями нс считаются. Рассмотрим пример. $ тип ярос, гцп Эта командная строка состоит из трех строк. А командная строка $ НехЬ, К1сх, рхег) содержит только одну строку, поскольку запятая раздслителсм нс является. Глава 6.

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

Аргумент ахдч необхолимо объявлять самому. Чаще всего применяется слелуюший способ. Вя с).аг *агдч[]; Пустые квадратные скобки означают, что массив имеет неопределенную длину. ]]Оступ к отдельным элементам массива атдч осущесцшяется с помощью индексации. Например, элемент акдч[0] ссылается на первую строку, которая всегла является именем программы, элемент акдч[1] ссылается на первый аргумент и т.д. Рассмотрим программу совпейонп, в которой используются аргументы командной строки. Счетчик цикла в этой программе уменьшаемся с начального значения, заданного аргументом командной сроки, до О, Обратите внимание на то, что первый аргумент преобразуется в целое число с помощью стандартной функции ато1[).

Если вторым аргументом является строка "Йзр]ау", значение счетчика выволится на экран. /* Программа соипсйомп. */ ««пс1ийе <яей«о.Ь> «зпс1ийе <яей1«Ь.Ь> ««пс1ийе <стуре.Ь> «1ьс1ийе <ясг«пд.Ь> зпе иатп(]пе агдс, сиаг *агдч[]) ( дпе й«вр, сопле; «й(агдс<2) ( рг«пе«("Введите начальное значение счетчикМп"); рг1пе«("в командной строке.

Попробуйте еще.1п"); ех«е(1); ) 1«(агдс==з Ьа !яегсир(агдч[2], "й1вр1ау")) й«яр = 1; е1яе йхяр = О; гог(попас=асо1(агдч[1]); сопля; --соппс) 1«(й«вр) ргьпе«( Вап , сопля); рпесиат('1а'); /* Сигнал */ рг«псг("Гстсвс"): гетигп О) Если командная строка не содержит аргументов, на экран выдается сооб)ление об ошибке. Программа, ожидающая ввода аргументов нз командной строки, должна анализировать их и даваясь пользователю соответствующие инструкции. Чтобы вылепить отдельный символ из аргумента командной строки, нсобхолимо использовать индекс массива акдч.

Следующая программа выводит на экран все свои аргументы посимвольно. ««пс1пйе <вейде.Ь> Часть 1. Основы языка С++) подмножество С тпс п1атг1 ( тпс агдс, спас *агдч [ ) ) ( ъпс с, гог(с=.о; с<а"дс; = с; жбана(агдч[С)[т)) росс)заг(агдч[С)[(1) ргз.псХ("тп'); ) геьсгп 0; Учтитс, что псрвый иплскс прслоставляст доступ к строке, а второй — к отдельному символу. Обычно аргумспты ахдс и ахд1г используются для псрслачи пачальпых параметров программы.

тсорстичсски можно указгавать ло 327б7 аргумс~(тов. олиако в большинстве операциош(ых систем это количество пампого мспьшс. Как правило, аргумспты комаилпои строки задают имя фаила или какую-либо опцию. Примсцсиис командных аргументов придаст программе профсссиоиальиый вид и позволяет примспять пакстпыс файлы (Ьагс)( В)са). Если программа ис используст аргумсптов, указывасмых в командной строкс, как правило, функция гхадп() яшю объявлясзся без парамстров.

В программах иа языке С для этого достаточ(ю просто указать в списке паралзетров клю (овос слово чоап. Однако в языке Сч-ь список парал(стров мож~(о вообще оставить пустым. Использоваиис ключсвого слова тоъгт для объявлспия пус~ого списка парамстров в языке С++ допускастся, по пс рскомсддустся. Несмотря па то что имена акдс и акдзг являются традициоппыми, аргумситы функции жа).п() можно иазывагь как угодно. Кроме того, компиляторы могут подлсрживать расширсцпыи список аргумс~ггов функции вахи(). Информацию об этом следует искать в докумсптации.

~~- Оператор геЬгп Оператор хесихп ужс рассмазриаался в главс 3. Как извсспю, оп используется в двух ситуациях. Во-псрвых, оц вызываст цсмедлспиый выход из фуикции. Иначе говоря, программа псрсдаст управлсиис вызываюшсму модулю. Во-вторых, с помошью оператора кеспхп осу(цесталястся возврат зиачспия, вычислсииого фупкцисй. Рассмотрим, как это происходит. Возврат управления из функции Сушсствуст лва способа прскратить выполпспие фуикции и вернуть управлспис вызываюшсму модул(о. В первом случас функция полностью выполняст свои операторы, и управление досп(гает закрываюшсй фигурной скобки ). [Разумсстся, сама фигурная скобка ис порожласт пикакого объектного кода, однако сс можно так гпперпрстировать.) Напримср, функция рк кеиахвеО в слсдуюшсй программе выволит иа экран строку "Я люблю С++" в обратном порядке, а загсы возвращает упранлсиис главному модулю.

Характеристики

Тип файла
DJVU-файл
Размер
7,03 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6553
Авторов
на СтудИзбе
299
Средний доход
с одного платного файла
Обучение Подробнее