Connecting Tech Pros Worldwide Help | Site Map

command line arguments

  #1  
Old March 14th, 2006, 09:55 AM
kitty
Guest
 
Posts: n/a
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,.

  #2  
Old March 14th, 2006, 10:05 AM
Rolf Magnus
Guest
 
Posts: n/a

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.

  #3  
Old March 14th, 2006, 10:15 AM
Jim Langston
Guest
 
Posts: n/a

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


  #4  
Old March 15th, 2006, 01:35 PM
zhangliangji@gmail.com
Guest
 
Posts: n/a

re: command line arguments


Thanks for everything

Closed Thread


Similar Threads
Thread Thread Starter Forum Replies Last Post
comp.lang.c Answers to Frequently Asked Questions (FAQ List) Steve Summit answers 0 November 14th, 2005 04:15 AM
comp.lang.c Answers to Frequently Asked Questions (FAQ List) Steve Summit answers 0 November 13th, 2005 11:37 PM
comp.lang.c Answers to Frequently Asked Questions (FAQ List) Steve Summit answers 0 November 13th, 2005 09:56 PM
comp.lang.c Answers to Frequently Asked Questions (FAQ List) Steve Summit answers 0 November 13th, 2005 03:15 AM
Connect to remote server using db2 and Perl banz@glion.ch answers 4 November 12th, 2005 10:39 AM