command line arguments

K

kitty

Can i provide for command line switches in c++ ?
For example i can say perl readfile.pl -f filename,
Is g++ readfile.cc -f filename possible ?

Thankyou for all you help,.
 
R

Rolf Magnus

kitty said:
Can i provide for command line switches in c++ ?

Sure, why not?
For example i can say perl readfile.pl -f filename,
Is g++ readfile.cc -f filename possible ?

You mean provide command line switches for your program to the compiler?
That's not very useful, is it? The command line switches are supposed to be
passed on execution of your program. For interpreted languages, that's the
same time the interpreter is run, but not for compiled languages. So when
you run you program, you can do:

../readfile -f filename

If you want to provide something to the compiler that can be used in your
program, you can use a macro. Most compilers provide a command line switch
to define macros. In GCC, it would be -D, so you can do:

g++ readfile.cc -DFILENAME=filename

then you can use FILENAME within your program to refer to filename.
 
J

Jim Langston

kitty said:
Can i provide for command line switches in c++ ?
For example i can say perl readfile.pl -f filename,
Is g++ readfile.cc -f filename possible ?

Thankyou for all you help,.

Do you mean command line switches that your program can read? Yes. They
are passed as two parameters to main. The first parameter is an integer
giving the number of arguments. The second parameter is a pointer to an
array of pointers to c-style strings containing the arguments.

Example:

#include <string>
#include <iostream>

int main( int argc, char* argv[] )
{
if ( argc < 3 )
{
std::cout << "Usage: myprog.exe -f <filename>" << std::endl;
return 1;
}

// argv[0] is the name of the program, we don't need that
std::string parm = argv[1];
if ( parm != "-f" )
{
std::cout << "Usage: myprog.exe -f <filename>" << std::endl;
return 1;
}

std::string filename = argv[2];
// filename now contains the filename.
}
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,582
Members
45,057
Latest member
KetoBeezACVGummies

Latest Threads

Top