Аргументы функции main

Язык C++ / Аргументы функции main

 

При автоматизированном создании консольного приложения в языке программирования С++, автоматически создается главная функция очень похожая на эту:

int main(int argc, char* argv[])
{…}

Заголовок функции содержит сигнатуру главной функции main() с аргументами argс и argv.
Если программу запускать через командную строку, то существует возможность передать какую-либо информацию этой программе. Для этого существуют аргументы командной строки argc и argv[].
Параметр argc имеет тип int, и содержит количество параметров, передаваемых в функцию main. Причем argc всегда не меньше 1, даже когда функции main не передается никакой информации, так как первым параметром считается имя приложения.
Параметр argv[] представляет собой массив указателей на строки. Через командную строку можно передать только данные строкового типа.

При запуске программы через командную строку Windows можно передавать ей некоторую информацию. При этом командная строка будет иметь вид:
Диск:\путь\имя.exe аргумент1 аргумент2 …

Аргументы командной строки разделяются одним или несколькими пробелами.
Запуск программы из командной строки

Аргумент argv[0] содержит полное имя приложения:

#include <iostream>
using namespace std;
int main(int argc, char* argv[]) {
  cout << argv[0] << endl;
  cin.get();
  return 0;
}

Результат выполнения
Аргумент argv[0]

Пример: вычисление произведения двух целых чисел
В программе используется функция преобразования строки в целое число StrToInt() отсюда.

#include <iostream>
using namespace std;
int StrToInt(char *s) {…}
int main(int argc, char* argv[]) {
  int a = 0, b=0;
  if (argc > 1)
    a = StrToInt(argv[1]);
  if (argc > 2)
    b = StrToInt(argv[2]);
  cout << a <<«*» << b << «= « << a*b << endl;
  cin.get();
  return 0;
}

Запуск программы осуществляется как
Запуск программы из командной строки

Результат выполнения
Произведение двух чисел, заданных в командной строке

Отладка программы с аргументами командной строки

Для передачи аргументов командной строки при отладке программы необходимо обратиться к меню Свойства проекта.
Вкладка Свойства проекта
На вкладке Свойства конфигурации ->Отладка выбрать Аргументы команды и задать их значения.
Аргументы командной строки при отладке

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


Назад: Язык C++

Комментариев к записи: 1

  • Очень долго искал информацию, как задавать аргументы с пробелами(к примеру пути к файлам). Добавьте, вдруг понадобится людям:Либо в кавычках: "путь\путь путь.файл.расширение"Либо пробел оформляем управляющим символом: \пробелИ спасибо большое за статью

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *