You can directly pass arguments to a program. For this purpose, you have to declare these arguments in the parameter list of main():
int main (int argc, char ** argv){}
The variable argc holds the number of arguments passed, and argv stores the arguments themselves as an array of null-terminated C-strings. Note that the first argument is the name of the program (i.e., the name of the exe file). The rest of the arguments are supplied by the user. Command line arguments are useful in Unix- and DOS-style programs that take options, file names etc. The following example shows how to implement a simple file copy program, that takes as arguments two filenames: the source file and the target file:
//filename mycopy.cppint main (int argc, char ** argv){ if (argc<3) //not enough arguments { cout>> "one or more arguments missing"; exit(-1); } FILE *source = fopen(argv[1]); FILE *target = fopen(argv[2]); if ((source == NULL) || (target == NULL)) { cout<< "failed to open one or more files"; exit(-1); } copyfiles(source, target); //call a copy function}
To run this program, you can invoke it from the command line prompt like this:
C:> mycopy data.txt backup.bak