- HubPages»
- Technology»
- Computers & Software»
- Computer Science & Programming
Using Command Line Arguments in C++
All C++ Programs can be given arguments through command line and can also be exected using the same command line interface. To do so there is a standard format and procedure explained below, afterwords we will consider some examples of programs using command line arguments (filing and a simple function).
Standard Command Line Arguments argv and argc
int main ( int argc, char *argv[] ) { //checking number of arguments entered by user in cmd if ( argc!= 3 ) { //show what should be arguments cout << "Usage: Name FirstArgument SecondArgument and so on" << endl; exit(-1); }
Line 1: These two arguments in the function main, "argv" and "argc", they are the standard arguments. Every program seeking to get arguments from command line must follow this format.
- argv is an array of pointers of type char. You can pass any number of string arguments through argv (refer to the images and example below to see how arguments are actually given and used).
- argc is an integer argument which holds the number of strings that were passed subsequently through argv. For example if two strings were entered through argv, argc will have the value of 2.
Line 4: Before proceeding with the execution the program must check whether the correct number of string arguments have been entered or not. Here the value 3 indicates that the program requires at least three arguments to carry out its function, this may change depending on your program.
Line 7: Tells the user what arguments should be entered.
How to Execute a C++ or C# Program thorough Command Line
In order to check your program you must know how to execute it from Command Line.
- Find the exe file your program and rename it to a short name preferably just one letter for instance take 'h.exe'.
- Move it out of the folders and paste it in drive C or any you prefer (by this I mean the exe file should not be in any folder) this will make it easier to access.
- Go to Run, open cmd.exe (command line) type "cd/" to move out of the documents and settings directory.
- Navigate to the partition in which you have placed your exe file.
- Type its name and press enter to execute it. The process is illustrated below:
Examples of Programs Using Command Line Arguments
Filling with Command Line Arguments
This is a simple filing program which reads characters from one file and then copies them into another file. The Name of the file from which to copy characters and the name of the file to which the characters are copied is being taken through command line argument.
- Note how the arguments are written in cmd separated with a space and extensions are also written with their names (See the image below).
- Both the exe file of the program, the file from which to copy characters and the second file to which the characters are being copied must be in the same directory.
#include <iostream> #include <fstream> #include <string> using namespace std; //first argument in cmd would always be .exe file name of this program, //2nd will be the file to be read //3rd will be file in which program will copy numbers int main ( int argc, char *argv[] ) { cout<<"*Program Execution Begins!*"<<endl; if ( argc!= 3 )//checking number of arguments entered by user in cmd { //show what should be arguments cout << "Usage: copyFile infile_name outfile_name" << endl; exit(-1); } ifstream infile( argv[1], ios::in );//opening first file in read mode if (!infile)//if file to copied could not be opened { cout <<"file: \""<<argv[1]<<"\" could not be opened\n"; exit(-1); } ofstream copynum( argv[2], ios::out );//2nd file in write mode char ch; while ( !infile.eof() ) { //read char from file 1 ch=infile.get(); copynum<<ch; } cout <<"Data Copied\n"; cout<<"Enjoy OOP!"<<endl; system("pause"); }
using the arguments of Argv
Line 13: Because the program requires 3 arguments to carry out its function argc should have a value of 3.
Line 20 and 28: Arguments are used using the array notation in the usual way, In Line 20 argv[1] points to the second argument, (argv[0] was the name of exe file) and in Line 28 argv[2] points to the third argument typed (see image below for how the arguments are typed in cmd).