При запуске консольных приложений очень часто используются аргументы (опции) команды — они указываются через пробел после имени запускаемого файла. Например:
программа 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», то используйте кавычки.
Смотрите также онлайн учебник «Основы С++».
Связанные статьи:
- Почему в C++ для double в числе только 5 цифр после запятой (72.2%)
- Как ввести в cin строки с пробелами в С++ (72.2%)
- Сравнение char со строкой в C++ (72.2%)
- Как в Bash реализовать «Нажмите любую кнопку для продолжения» (55.6%)
- Как создавать диалоговые блоки в интерактивных shell скриптах (50%)
- Какие есть полезные инструменты с интерфейсом командной строки для системных администраторов Linux (RANDOM - 5.6%)