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

Использование аргументов командной строки

Большинство команд, вводимых в ответ на системную подсказку, позволяют включать дополнительную информацию, такую как имя файла. Например, при использовании команды MS-DOS COPY для копирования содержимого одного файла во второй файл в командной строке указываются имена обоих файлов. Аналогично, если компилятор основан на командной строке, то нужно включать имя исходного файла при вызове компилятора. Ниже будут рассмотрены способы, с помощью которых программы на C++ обращаются к аргументам командной строки.

Основные концепции:

  • Программы на C++ трактуют аргументы командной строки как параметры функции main.

  • По традиции C++ передает два (иногда три) параметра в main, которые в большинстве программ называются argc и argv.

  • Параметр argc содержит количество аргументов командной строки, передаваемых в программу.

  • Параметр argv представляет собой массив указателей на символьные строки, каждая из которых соответствует одному параметру командной строки.

  • В зависимости от компилятора программы могут получить доступ к третьему параметру с именем env, который представляет собой массив указателей на символьные строки, указывающих на переменные среды.

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

Доступ к argv и argc

Если программа запускается из системной подсказки, командная строка, которую вы вводите, становится вашей командной строкой:

С:\> 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 для вывода количества аргументов командной строки:

#include <iostream.h>

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

{    cout << "Количество аргументов командной строки равно " << argc << endl; }

Массив argv указывает аргументы командной строки.

Второй параметр функции main с именем argv представляет собой массив указателей на символьные строки, которые содержат индивидуальные части командной строки. Например, приведенный выше рисунок иллюстрирует, как элементы массива argv могли бы указывать записи командной строки.

Следующая программа SHOWARGV.CPP использует оператор for для вывода элементов массива argv (командная строка программы). Программа запускается с первого элемента массива (имя программы) и затем выводит каждый элемент, пока значение переменной цикла не станет больше, чем argc:

#include <iostream.h>

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

{    int i;    for (i = 0; i < argc; i++) cout << "argv[" << i << "] содержит " << argv[i] << endl; }

Откомпилируйте и запустите эту программу, используя командную строку, подобную следующей:

С:\> SHOWARGV А В С <ENTER>

argv[0] содержит SHOWARGV.EXE

argv[l] содержит А

argv[2] содержит В

argv[3] содержит С