Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабы_по_проге_Берлин / Книги / учебное пособие ОАиП.pdf
Скачиваний:
49
Добавлен:
11.02.2015
Размер:
947 Кб
Скачать

Аргументы в командной строке

В операционной среде имеется возможность передавать аргументы запускаемой программе посредством командной строки. Аргументы командной строки – это информация, следующая за именем программы в командной строке операционной системы. Borland C++ поддерживает три аргумента функции main(). Первые два из них обычно обозначаются argc и argv. В параметре argc содержится количество передаваемых в командной строке аргументов. Значение argc не может быть меньше 1, так как имя программы рассматривается как первый аргумент. Второй параметр - argv[], является указателем на массив символьных строк (указателей). Каждый элемент данного массива указывает на аргумент командной строки. Аргументы командной строки должны отделяться пробелами или табуляцией. Запятые, точки и прочие символы не рассматриваются как разделители. Например:

C:\> fun.exe 3 aaa bbbb ccc – argc=3 и argv[] – указывает на три строки; C:\> fun.exe 3 aaa,bbbb,ccc – argc=3 а argv[] – указывает на одну строку;

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

”ааа вввв ссссс”

Объявление char *argv[] указывает на то, что массив argv не имеет фиксированной длины. По соглашению argv[0] есть имя вызываемой таким образом программы. Если argc=1, то в командной строке после имени программы нет никаких аргументов. Если в командной строке не указаны аргументы, то это приводит к ошибке. Использование второго индекса в argv позволяет осуществить доступ к отдельным символам командной строки. Например:

# include<stdio.h>

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

{int i,j; for(i=0;i<argc;i++) { j=0;

while(argv[i][j]) printf(“%c”,argv[i][j++]); printf(” ”);

}

}

Эта программа выводит по одному символу все аргументы, с которыми она вызывалась.

Помимо argc и argv, в Borland C++ имеется третий аргумент – env. Этот параметр позволяет программе получить доступ к информации о среде операционной системы и следует за argc и argv. Как и argv, env является указателем на массив строк, где каждая строка – это строка среды, определенная операционной системой. Параметр env не имеет аналога параметра argc сообщающего о количестве строк среды. Для этого используется нулевая последняя строка среды. Например:

# include<stdio.h>