Как задать аргументы командной строки в Visual Studio

Превью к статье о передаче аргументов командной строки в Visual Studio

Иногда нужно, чтобы программа выполняла разные действия в зависимости от заданных параметров при запуске. Для этого используется механизм аргументов командной строки. Чтобы задать аргументы достаточно написать их в консоли после имени запускаемой программы. Однако при работе в интегрированной среде разработки Visual Studio вы не запускаете программу через консоль самостоятельно, так как этим занимается сама студия. К сожалению, далеко не очевидно, каким образом задавать аргументы командной строки в Visual Studio. Конечно, можно просто открыть консоль, перейти в папку с проектом и запустить приложение прямо оттуда, передав нужные аргументы, однако есть способ сделать это прямо в среде разработки. Так давайте разберёмся ним и научимся передавать аргументы прямо из студии, не запуская консоль и не ища расположение запускаемого проекта.

Шаг первый. Создаём новый С++ проект

Если вы не знаете, как создать новый проект, прочитайте нашу статью об этом: Как создать C/C++ проект в Visual Studio.

Создание проекта в VS
Создание нового проекта

Студия создаст проект и открое редактор кода, в котором будет примерно следующее:

#include "stdafx.h"
#include <iostream>

int main(int argc, char **argv) {
    return 0;
}

Шаг второй. Пишем код для отображения переданных аргументов

Напишем простую программу, которая будет выводить все аргументы командной строки кроме имени запускаемого файла или выводить сообщение "no arguments", если аргументы не будут переданы. Для проверки количества аргументов проверим значение argc. Если оно равно 1, то аргументы помимо имени исполняемого файла не переднаны и необходимо вывести сообщение об этом. в противном же случае пройдёмся по всем аргументам, начиная со второго (с первого, если считать от нуля) и выведим содержимое каждого из них:

#include "stdafx.h"
#include <iostream>

using namespace std;

int main(int argc, char **argv) {
	if (argc == 1) { // если в аргументах только имя программы
		cout << "no arguments!" << endl; // выводим, что нет аргументов
	}
	else {
		// иначе выводим все аргументы, которые переданы
		for (int i = 1; i < argc; i++) {
			cout << "argv[" << i << "] - " << argv[i] << endl;
		}
	}

    return 0;
}

Запустим приложение и убедимся, что ни одного аргумента помимо имени программы передано не было:

Запуск приложения
Запуск приложения

Шаг третий. Задание аргументов командной строки

Чтобы передать аргументы командной строки в Visual Studio нужно:

  1. Выбрать в верхнем меню панель Проект;
  2. В появившейся вкладке выбрать Свойства;
  3. В открывшемся окне выбрать Отладка
  4. В правой части задать аргументы в поле Аргументы команды

Проект
Проект
Свойства
Свойства
Отладка
Отладка

Напишем там какие-нибудь аргументы для проверки и ещё раз запустим приложение

Повторный запуск приложения
Повторный запуск приложения

Программа вывела все аргументы, которые только что были переданы. А значит мы научились задавать параметры командной строки прямо в Visual Studio.