В языке C заданы два встроенных аргумента функции main: argc и argv.
Выглядит это так:
int main(int argc, char *argv[])
Аргумент argc типа integer содержит в себе количество аргументов командной строки.
Аргумент argv типа char - указатель на массив строк. Каждый элемент массива указывает на аргументы командной строки. Один параметр отделяется от другого пробелами.
- argv[0] - полное имя запущенной программы
- argv[1] - первая строка записаная после имени программы
- argv[2] - вторая строка записаная после имени программы
- argv[argc-1] - последняя строка записаная после имени программы
- argv[argc] - NULL
В средах разработки фирмы Borland (Borland Builder C++, Borland C++ и т.п.) предусмотрен еще и третий аргумент env, который, так же как и argv является указателем на массив строк, но содержит установки среды:
int main(int argc, char *argv[], char *env[])
Если необходимо в качестве параметра иметь строку, содержащую пробелы, то ее надо заключить в двойные кавычки. Если аргументом является число, то оно рассматривается как строка. Для работы с ним, как с числом необходимо его преобразовать, используя соответствующую функцию.
Пример:
#include "stdio.h"
#include "stdlib.h"
int main(int argc, char *argv[])
{
int i;
printf("Количество аргументов командной строки %d \n", argc);
printf("Аргументы командной строки:\n);
for (i = 0; i < argc; i++) printf("%s\n", argv[i]);
return 0;
} |