Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






  • Сервис онлайн-записи на собственном Telegram-боте
    Тот, кто работает в сфере услуг, знает — без ведения записи клиентов никуда. Мало того, что нужно видеть свое расписание, но и напоминать клиентам о визитах тоже. Нашли самый бюджетный и оптимальный вариант: сервис VisitTime.
    Для новых пользователей первый месяц бесплатно.
    Чат-бот для мастеров и специалистов, который упрощает ведение записей:
    Сам записывает клиентов и напоминает им о визите;
    Персонализирует скидки, чаевые, кэшбэк и предоплаты;
    Увеличивает доходимость и помогает больше зарабатывать;
    Начать пользоваться сервисом
  • Командний рядок аргументів






    Системні засоби для мови С++ дозволяють передавати командний рядок аргументів (параметрів) програмі для виконання. Функція Main до виконання викликається із двома аргументами. Перший аргумент (argc) вказує кількість аргументів у командному рядку, з якими відбувається звернення до програми, а другий (argv) – вказівник на масив символьних рядків, які містять ці аргументи (по одному в рядку). Робота з такими рядками – це і є використання багаторівневих вказівників.

    Розглянемо програму echo (див. ПП6.21 на СD), яка друкує рядок аргументів командного рядка. Отже, якщо дана команда echo Привіт, Київ, то виходом буде Привіт, Київ. За замовчуванням, argv [0] є іменем, за яким викликається програма, тому argc щонайменше дорівнює одиниці. У прикладі argc = 3, а argv [0], arg v[1] і argv [2] дорівнюють відповідно «echo», «Привіт,» і «Київ». Першим фактичним аргументом є argv [1], а останнім – argv [ argc –1]. Якщо argc = 1, то за ім’ям програми немає ніякого командного рядка аргументів.

    Оскільки argv є вказівником на масив вказівників, то існує кілька способів написання цієї програми, які використовують роботу з вказівником. Розглянемо два варіанти: програми ПП6.22 і ПП6.23. (див. на СD) аргумент аrgv є вказівником на початок масиву рядків-аргументів, тому, збільшивши його на 1 (++ argv), він вказує на аргумент argv [1], а не на argv [0]. Кожне наступне збільшення пересуває його на наступний аргумент, при цьому * argv стає вказівником на цей аргумент. Одночасно величина argc зменшується, і коли вона дорівнює нулю, всі аргументи будуть уже надруковані. Версія друга показує, що аргументом формату функції printf є вираз.

    Розглянемо другий приклад – удосконалення програми пошуку заданої комбінації символів, де шукану комбінація було розміщено всередині програми. Змінимо програму так, щоб ця комбінація вказувалася як перший аргумент рядка (див. ПП6.24 на СD).

    Далі розглянемо основну модель, яка ілюструє подальше використання вказівників. Припустімо, що треба передбачити два необов’язкові аргументи. Один стверджує: «надрукувати всі рядки за винятком тих, які містять дану комбінацію», другий: «перед кожним виведеним рядком потрібно друкувати його номер».

    Загальноприйнято, що у мові С++ аргумент, який починається зі знака мінус, уводить необов’язкову ознаку або параметр. Якщо для повідомлення про інверсії вибрати – x, а для вказівки про нумерацію потрібних рядків вибрати – n («номер»), то команда

    find -x -n the

    при вхідних даних

    now is the time

    for all good men

    to come to the aid

    of their party.

    має видати

    2: for all good men

    Необов’язкові аргументи потрібно розташовувати довільно, інша частина програми не залежить від кількості фактично нявних аргументів. Зокрема, виклик функції Index не повинен містити посилання на argv [2], коли є один необов’язковий аргумент, і на argv [1], коли його немає. Більш того, необов’язкові аргументи можна об’єднати у вигляді:

    find -nx the

    Розглянемо програму ПП6.25 (див. на СD). Аргумент argv збільшується перед кожним необов’язковим аргументом, тоді як аргумент argc зменшується. Якщо немає помилок, то наприкінці циклу величина argc дорівнюватиме одиниці, а * argv вказуватиме на задану комбінацію. Зауважимо, що *++ argv є вказівником аргументного рядка, де (*++ argv)[0] – його перший символ. Круглі дужки тут потрібні, оскільки без них вираз буде неправильним: *++(argv [0]). Інша правильна його форма така: **++ argv.






    © 2023 :: MyLektsii.ru :: Мои Лекции
    Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
    Копирование текстов разрешено только с указанием индексируемой ссылки на источник.