dcsimg
Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX

By submitting your information, you agree that devx.com may send you DevX offers via email, phone and text message, as well as email offers about other products and services that DevX believes may be of interest to you. DevX will process your information in accordance with the Quinstreet Privacy Policy.


Tip of the Day
Language: Algorithms
Expertise: Beginner
Aug 17, 1998

WEBINAR:

On-Demand

Building the Right Environment to Support AI, Machine Learning and Deep Learning


Switches

Question:
I'm attempting to write a command line program which has switch functionality (such as the DOS switches). I'm not sure how to code the program to accept the switches following the program call. It would run something like this:

sample.exe /n /d: /t blah blah:blah:blah

Answer:
Your program may need to handle other arguments as well as "switches." For example, file names. But here's some code I like to use to process any number of switches.

void main(int argc,char *argv[])
{
   int i;

   /* read command line parameters */
   for(i = 1;i < argc;i++) {
      switch(argv[i][0]) {
         case '/':
         case '-':
            switch(tolower(argv[i][1])) {
               case 'a': // got /a or -a
                  break;
               case 'b': // got /b or -b
                  break;
               case 'c': // etc.
                  break;
               default: // ???-show help
                  break;
            }
            break;
         default:
            // got an argument with no
            // - or / maybe a filename
            break;
      }
   }
}
This should get you started. It allows switches to be set off with either "/" or "-", to be upper or lower case, and gives a place to handle nonswitch arguments as well.
DevX Pro
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap
Thanks for your registration, follow us on our social networks to keep up-to-date