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 (DOS/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?
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:
Note: As mentioned in the comments, this does not work on windows vista, a fact I was unaware of at the time of writing.
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.
Something is going to start your program. It's up to that something to pass it arguments. All of the usual shells will parse the command line (although not always in the same way) to present you the arguments. Under Windows, left clicking on buttons on the desktop and in the task bar will open up a configuration window, which has a "Shortcut" tab where you can enter the command line as a "Target:". The rc files under Unix (executed on start-up) are basically shell scripts, and the cron files (timed start-up) also take a command line (and not just an isolated command). And so on.
In other contexts, you can map the file type (extension) to a command which will be executed when you click on a file of that type, or download it. In such cases, if nothing else, you will at least get the full path to the file.
In the few cases where you can only get the name of the file, it's fairly easy to write your own shell script to add extra arguments when it invokes your program.