Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
мищишин електронка.doc
Скачиваний:
1
Добавлен:
08.12.2018
Размер:
1.04 Mб
Скачать

Void main(void)

{

cout << "Зараз дзвонитиме!" << endl;

asm {

MOV AH,2

MOV DL,7

INT 21H

}

cout << "Є!" << endl;

}

Як бачите, використовуючи оператор asm, програма комбінує оператори C++ і мови асемблера.

36. Використання аргументів командного рядка

Програми звертаються до аргументів командного рядка, наприклад:

С:\> COPY SOURCE.DOC TARGET.DOC <ENTER>

В цьому випадку командний рядок містить команду (COPY) і два аргументи (імена файлів SOURCE.DOC і TARGET.DOC). Щоб дозволити програмі доступ до цього командного рядка, C++ передає два параметри у функцію main:

Void main(int argc, char *argv[])

Параметр argc містить кількість елементів в масиві argv. Наприклад, для попередньої команди COPY параметр argc повинен містити значення 3 (ім'я команди і два аргументи). Наступна програма SHOWARGC.CPP ілюструє застосування параметра argc для виведення кількості аргументів командного рядка:

Void main(int argc, char *argv[])

{

cout << "Кількість аргументів командного рядка дорівнює "

<< argc << endl;

}

Виберіть час для експериментування з цією програмою, викликаючи її з різною кількістю параметрів, як показано нижче:

C:\> SHOWARGC A B C <ENTER>

Кількість аргументів командного рядка дорівнює 4

Залежно від типу компілятор може розглядати аргументи, які групуються усередині подвійних лапок, як один аргумент:

C:\> SHOWARGC "Це один аргумент" <ENTER>

Кількість аргументів командного рядка дорівнює 2

Другий параметр функції main з ім'ям argv є масивом вказівників на символьні рядки, що містять індивідуальні частини командного рядка.

Наступна програма SHOWARGV.CPP використовує оператор for для виведення елементів масиву argv (командний рядок програми). Програма запускається з першого елемента масиву (ім'я програми) і потім виводить кожний елемент, поки значення змінної циклу не стане більше, ніж argc:

Void main(int argc, char *argv[])

{

int i;

for (i = 0; i < argc; i++)

cout << "argv[" << i << "] містить " << argv[i] << endl;

}

Відкомпілюйте і виконайте цю програму, використовуючи командний рядок, подібний наступному:

C:\> SHOWARGV A B C <ENTER>

argv[0] містить SHOWARGV.EXE

argv[l] містить А

argv[2] містить В

argv[3] містить C

Для збільшення кількості задач, виконуваних програмою, C++ дозволяє вам звертатися до аргументів командного рядка, використовуючи два параметри, які C++ передає в main. Перший параметр argc містить кількість аргументів командного рядка (включаючи ім'я програми). Другий параметр argv є масивом вказівників на символьні рядки. Кожний символьний рядок відповідає аргументу командного рядка. Щоб звернутися до аргументів командного рядка, потрібно змінити заголовок функції main, як показано нижче:

Void main(int argc, char *argv[]) виконання циклу до тих пір поки argv he містить null

Як ви вже знаєте, програми C++ використовують символ NULL для завершення символьного рядка. Подібним чином C++ використовує символ NULL, щоб відзначити останній елемент масиву argv. Наступна програма ARGVNULL.CPP змінює оператор for попередньої програми, щоб виконати цикл за елементами argv, поки поточний елемент argv не буде рівний NULL: