How to use command line arguments in C++ program?

32,797

Solution 1

For the purpose of simplicity, I will assume you are using Windows 7.

The simplest way is to open a DOS box and then drag-n-drop you application on to it. This will insert the path to your executable. Following that, you may begin typing the command line arguments you wish to pass it. It should end up looking something like this:

C:\Users\cscott> "C:\Users\cscott\Documents\myApp.exe" argument1 argument2

Note: As mentioned in the comments, this does not work on windows vista, a fact I was unaware of at the time of writing.

Solution 2

I'm going to assume you're using an IDE, and I'll take a wild guess that it's Visual Studio. If I'm right, there are two approaches - one, open up the folder containing the executable that's been built - it'll be in {Solution Directory}/{Project Directory}/bin/{Build Configuration} by default. Run the command line there. The other option is to open the project properties, and under the "Debug" tab (in VS 2010 - it varies by version) put your command line flags in the box labeled "Command line arguments".

Solution 3

Some ways how arguments can be passed to a program:

  • Open your command prompt (like cmd.exe or PowerShell on Windows), then type: your_program.exe arg1 arg2 arg3.
    You can do the same thing in a shortcut or a script (like a batch or sh script).

  • Edit the run configuration in your IDE.
    For instance, Eclipse alllows you to set command-line arguments separately for each run configuration. This is helpful during development and debugging.

  • On Windows, drag and drop a file onto the executable. The dragged file's filename will be passed as a command-line argument.

  • On Windows, associate a filename extension with a filetype (assoc command) and associate that filetype with a command that runs your program (ftype command). Now when such a file is opened, either in the command interpreter or by e.g. double clicking, what happens behind the scenes is that your program is run with the path to that file as argument.

  • Run your executable programatically from another program and pass arguments as variables.
    For instance in Python:
    subprocess.call(['my_program.exe','arg1','arg2'])

Solution 4

Here's a simple example I use in linux

./myprogram args1 args2

and u can parse it like this

int
main (int argc, char **argv)
{
  if (argc >= 2) {
     std::string param(argv[1]);
  }
  ///etc
}

Solution 5

In Windows you have to navigate using the command prompt to your executable location and you can run it by saying Myexe.exe first_arg second_arg.

Alternatively you can right-click your exe file and in the file settings you can specify some command line arguments to provide to it when it is opened by double clicking.

Another way is also by writing a simple batch script that just calls your program like C:/Full/Path/To/Your/Program/app.exe first_arg second_arg and running that.

In Visual Studio or your preferred IDE you will have the option in the project settings to specify some command line arguments to your program when executing from inside the IDE.

Share:
32,797
Mohamed Ahmed Nabil
Author by

Mohamed Ahmed Nabil

Updated on December 12, 2020

Comments

  • Mohamed Ahmed Nabil
    Mohamed Ahmed Nabil over 3 years

    I know that to use command line arguments, I have to do this.

    int main(int argc, char* argv[])

    Now most of the documentation i read about taking in command line arguments explain the situation, something like this:

    Command-line arguments are given after the name of a program in command-line operating systems like DOS or Linux, and are passed in to the program from the operating system.

    So the only way i know to open my program, is to open it normally like i would do, either start debugging or open the exe file

    Now here it seems that, to use command line arguments the program has to be opened differently, Using the Command-Line (Windows Command Prompt for example), and then write the arguments after it.

    So my question is

    How do i open my program using the Command-Line, and how do i enter the arguments after the program name?