Connecting Tech Pros Worldwide Forums | Help | Site Map

command line arguments

kitty
Guest
 
Posts: n/a
#1: Mar 14 '06
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,.


Rolf Magnus
Guest
 
Posts: n/a
#2: Mar 14 '06

re: command line arguments


kitty wrote:
[color=blue]
> Can i provide for command line switches in c++ ?[/color]

Sure, why not?
[color=blue]
> For example i can say perl readfile.pl -f filename,
> Is g++ readfile.cc -f filename possible ?[/color]

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.

Jim Langston
Guest
 
Posts: n/a
#3: Mar 14 '06

re: command line arguments


"kitty" <krithika.ram@gmail.com> wrote in message
news:1142329587.192117.103330@v46g2000cwv.googlegr oups.com...[color=blue]
> 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,.[/color]

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.
}


zhangliangji@gmail.com
Guest
 
Posts: n/a
#4: Mar 15 '06

re: command line arguments


Thanks for everything

Closed Thread


Similar C / C++ bytes