Учимся программировать на языке C++

         

ДОСТУП К 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;

}

Выберите время для эксперимента с этой программой, вызывая ее с разным количеством параметров, как показано ниже:

С:\ SHOWARGC А В С ENTER

Количество аргументов командной строки равно 4

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

С:\ SHOWARGC "Это один аргумент" ENTER

Количество аргументов командной строки равно 2



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

Второй параметр функции main с именем argv представляет собой массив указателей на символьные строки, которые содержат индивидуальные части командной строки. Например, 36 иллюстрирует, как элементы массива 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] содержит С

Доступ к аргументам командной строки

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

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


Содержание раздела