Like C, C++ enables to pass arguments to the main () function also. These arguments are passed by typing them after the program name on the command line. Hence, these arguments are known as command line arguments. Command line arguments help in providing data to the program.
The syntax of passing command line arguments is
program_name <arg1 <arg2>…………. <argN>
where,
program_name = name of the program run from command line
<arg1> <argN> = name of argument passed to the program separated by a space
In C++, three arguments are passed to main () : argc, argv and envp
• The first argument argc of type int is the Argument Count, which counts the number of command line arguments passed to the program, including the program name.
• The second argument argv of the type array of char* is the Argument Vector, which holds the command line arguments. The first character array is argv [0] that stores the program name and the remaining elements represent the arguments supplied to the program.
• The third argument envp of the type array of char* is an optional argument that holds the current settings for any environment block variables.
The function header of main ()with arguments is written as
int main{ int argc, char* argv[], char* envp[])
It can also be written as
int main{ int argc, char *argv[], char *envp[])
To understand the concept of arguments to main(),consider this example.
Example: A program to demonstrate the concept of command line arguments
#include<iostream> using namespace std; int main{int argc, char *argv[], char *envp[]) { cout<<”Number of arguments (argc) is “<<argc<<endl; cout<<”Program name is "<<argv[0]; cout<<”\nOther arguments are "<<endl; for (int i = 1; i < argc; i++) cout <<”argv["<<i<<”] = "<<argv[i] <<endl; cout<<”\nEnvironmental Settings are "<<endl; for (int i = 0; i < argc; i++) cout <<”envp["<<i<<"]="<<envp[i] <<endl; return 0i }
Save the file as args.cpp and then run the program from command line using this statement.
args hello world
The output of the program is
Number of arguments (argc) is 3
Program name is C:\args.exe
Other arguments are
argv[l]=hello argv[2]=world
Environmental Settings are
envp [0]== ::= ::\ envp [1]==c: =c: \ envp [2]=ALLUSERSPROFILE=C: \Documents and Settings\All Users
In this example, two strings hello and world are passed as command-line arguments with the name of the program args. The contents of argc and argv are shown in Figure.