Аргк и Аргв С++

Argk I Argv S



При написании программ на C++ мы все знаем, что функция «main()» считается очень важной, поскольку мы не можем скомпилировать нашу программу, если отсутствует реализация этой функции. Как и все другие функции C++, функция main() может принимать аргументы. Однако разница между передачей аргументов в функцию «main()» и передачей аргументов в другие функции заключается в том, что в первом случае вы должны передавать аргументы через командную строку. Это так, потому что функция «main()» сама по себе является функцией-драйвером, поэтому никакая другая функция не может вызывать ее и передавать ей аргументы. В этой статье мы обсудим два параметра функции «main()», то есть «argc» и «argv» в C++ в Ubuntu 20.04.

Что такое Argc и Argv в C++ в Ubuntu 20.04?

Параметр «argc» относится к количеству аргументов, тогда как «argv» относится к массиву символов, содержащему все аргументы, которые передаются функции «main()» через командную строку во время выполнения программы на C++. Здесь вам нужно знать, что «argc» всегда показывает количество аргументов как «1» больше, чем фактическое количество переданных аргументов. Это так, потому что имя объектного файла также считается аргументом командной строки. Вы можете передать аргументы командной строки, принадлежащие любому типу данных, в функцию «main()». Все, о чем вам нужно позаботиться, это упомянуть эти параметры в прототипе вашей функции «main()», если вы хотите получить к ним доступ внутри нее. Однако функция «main()» может прекрасно работать и без этих двух параметров. Об этом пойдет речь в следующем разделе этой статьи, после чего мы перейдем к использованию этих двух параметров в C++ в Ubuntu 20.04.

Основная функция без Argc и Argv в C++:

Прежде всего, мы хотели бы сказать вам, что функция «main()» в C++ может прекрасно работать даже без использования параметров «argc» и «argv». Это показано в следующей программе на C++:









В этой программе у нас есть простая функция main() без каких-либо аргументов. В этой функции «main()» мы печатаем только образец сообщения на терминале.



Затем мы скомпилировали эту базовую программу на C++ с помощью команды, указанной ниже:





$ г++ CommandLine.cpp –o Командная строка

После этого мы выполнили эту программу, выполнив следующую команду:



$ . / Командная строка

Вывод этой простой программы на C++ показан на изображении ниже:

Запуск программы на C++ без передачи каких-либо аргументов командной строки:

Теперь попробуем реализовать программу на C++, в которой функция «main()» способна принимать параметры «argc» и «argv», однако мы не будем передавать ей эти аргументы при выполнении этой программы из Терминал. Упомянутая программа C++ показана на следующем изображении:

В этой программе на C++ наша функция «main()» может принимать параметры «argc» и «argv». Однако, поскольку мы не собирались передавать ему эти значения в этом конкретном примере, мы намеренно приравняли «argc» к «0», чтобы при попытке напечатать его значение он не возвращал никакого мусорного значения. После этого мы напечатали значение параметра «argc» на терминале. Затем мы использовали цикл for для вывода всех аргументов командной строки на терминал.

Мы скомпилировали этот код с помощью команды, показанной ниже:

$ г++ CommandLine.cpp –o Командная строка

Затем, когда мы хотели запустить эту программу, мы не передавали ей никаких аргументов командной строки, как вы можете видеть из следующей команды:

$ . / Командная строка

Из вывода этой программы C++, показанного на изображении ниже, вы можете видеть, что в эту функцию не были переданы аргументы командной строки, из-за чего счетчик аргументов был равен «0», и на терминале не было напечатано ни одного аргумента, потому что массив символов « argv» также был пуст.

Запуск программы C++ с аргументами командной строки целочисленного типа:

Теперь мы хотим запустить ту же программу на C++, передав ей аргументы командной строки целочисленного типа. Однако перед этим мы немного изменим наш код, как показано на следующем рисунке:

Единственное изменение, которое мы внесли в этот код, заключается в том, что мы удалили из него строку «argc=0», потому что в этом примере мы хотим напечатать фактическое количество аргументов командной строки, переданных этой программе во время выполнения. Остальная часть кода точно такая же, как и в предыдущем разделе.

Мы перекомпилировали наш модифицированный код с помощью команды, показанной ниже:

$ г++ CommandLine.cpp –o Командная строка

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

$ . / Командная строка 1 два 3

Это означает, что мы передали этой программе C++ три аргумента командной строки целочисленного типа во время ее выполнения, т. е. 1, 2 и 3.

Вывод этой модифицированной программы показан на изображении ниже:

Общее количество аргументов, возвращаемых этой программой на C++, равно «4», т. е. три целочисленных аргумента, которые мы передали + имя объектного файла. Эта программа также выводила на терминал элементы символьного массива «argv», то есть фактические аргументы целочисленного типа, которые были переданы этой программе во время выполнения, вместе с именем программы.

Запуск программы C++ с аргументами командной строки символьного типа:

Теперь мы хотели проверить, нормально ли работает та же программа на C++, когда мы пытаемся выполнить ее, передав ей аргументы командной строки символьного типа. Для этого нам не нужно было его модифицировать дальше. Нам нужно было только выполнить его с аргументами командной строки символьного типа следующим образом:

$ . / Командная строка a b c d e f

Это означает, что мы передали шестисимвольные аргументы командной строки этой программе C++ во время ее выполнения, т. е. a, b, c, d, e и f.

Вывод, полученный в результате передачи аргументов командной строки символьного типа той же программе C++, показан ниже:

Общее количество аргументов, возвращаемых этой программой на C++, равно «7», т. е. переданные нами аргументы из шести символов + имя объектного файла. Эта программа также выводила на терминал элементы символьного массива «argv», т. е. фактические аргументы символьного типа, которые были переданы этой программе во время выполнения, вместе с именем программы.

Вывод:

Эта статья была посвящена обсуждению двух аргументов командной строки, также известных как параметры функции «main()», то есть «argc» и «argv». Мы говорили о важности этих двух параметров, указав их использование. Затем мы поделились с вами несколькими примерами, демонстрирующими использование «argc» и «argv» в C++ в Ubuntu 20.04. Более того, мы также уточнили, что даже без использования этих параметров функция «main()» может работать отлично. Поэтому, прочитав эту статью, вы очень четко поймете использование «argc» и «argv» в C++.