|
Reference: Deitel section
18.4
The following program shows how to capture command
line arguments within a C++ program.
int main (int argc, char *argv[])
{
cout << "The command is " << argv[0] << endl;
for (int index = 1; index < argc; index ++) {
cout << " Next Arg is " << argv[index];
}
cout <<endl;
return 0;
}
Suppose that this program is executed with the
following command:
a.out Cathy 20 "John Doe"
The arguments to the function called main are used
to refer to command line arguments. The argc integer
tells how many arguments there are, where the command
name (here a.out) is counted as one of the arguments.
For this example, argc will be 4. Argument argv[0] is
the command itself, argv[1] is the first argument
("Cathy"), etc. When the program starts up,
the compiler stores 4 in argc, while argv[0] is a
pointer to the string a.out, argv[1] is a pointer to
the string Cathy, argv[2] is a pointer to the string
20, and argv[3] is a pointer to the string John Doe.
Since John Doe appears in quotes on the command line
it is treated as a single argument instead of two
arguments.
This is the output that would be generated by the
program:
The command is a.out
Next Arg is Cathy Next Arg is 20 Next Arg is John Doe
All of the arguments are returned as character
strings. If you want the integer value of one of the
arguments, such as the number 20 in our example, you
would store the correct value into integer variable
intArgument with the statement
intArgument = atoi(argv[2]);
To use atoi, you must include the header file
<stdlib.h> or <cstdlib>.
|