zaLinux.ru

Доступ к аргументам командной строки в C++


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

программа 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», то используйте кавычки.

Смотрите также онлайн учебник «Основы С++».


Рекомендуемые статьи:

Оставить комментарий

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