При запуске консольных приложений очень часто используются аргументы (опции) команды — они указываются через пробел после имени запускаемого файла. Например:
программа arg1 arg2 arg3
Рассмотрим, как передать аргументы команды в программу C++ и как получить доступ к аргумент командной строки из программы C++.
Чтобы в программе на C++ прочитать переданные аргументы, замените строку объявления главной функции:
int main () {
на следующую строку:
int main (int argc, char *argv[]) {
Переменная argc, которая представляет собой целое число (int), содержит количество переданных аргументов. А сами аргументы содержатся в элементах массива с обозначениями argv[1], argv[2], argv[3] и так далее.
Элемент массива argv[0] будет содержать имя самой программы.
Продемонстрируем это следующей простой программой:
#include <iostream>
#include <cmath>
using namespace std;
int main (int argc, char *argv[]) {
cout << "Всего передано аргументов: " << argc << endl;
cout << "Значение первого аргумента: " << argv[1] << endl;
cout << "Значение второго аргумента: " << argv[2] << endl;
cout << "Значение третьего аргумента: " << argv[3] << endl;
cout << "Имя файла программы: " << argv[0] << endl;
}
Скомпилируйте и запустите её примерно следующим образом:
./a.out 12345 "Второй аргумент" 'Последний аргумент'
Результат работы программы:
Всего передано аргументов: 4
Значение первого аргумента: 12345
Значение второго аргумента: Второй аргумент
Значение третьего аргумента: Последний аргумент
Имя файла программы: ./a.out
Аргументы командной строки разделяются пробелом, если вы хотите передать аргумент с пробелом, например «hello world», то используйте кавычки.
Смотрите также онлайн учебник «Основы С++».
