处理命令行参数的命令

时间:2021-06-06 14:27:46
#include<stdlib.h>
#include<stdio.h>

#define TURE 1
 
void process_standered_input(void);
void process_file(char* filename);

int option_a,option_b;

/*处理命令行参数的命令*/
//类似于prog -a -b -c name1 name2 name3的命令行输入参数命令
int main(int argc,char **argv)
 {
	 while(*++argv!=NULL&&**argv=='-')//跳到下一个参数,并检查其是否为‘-’开头
	 {
		 switch(*++*argv)//判断每个‘-’后面的参数是什么
		 {
			 case 'a':
				 option_a=TURE;
				 break;
			 case 'b':
				 option_b=TURE;
				 break;
		 }
	 }
	 if(*argv==NULL)//若是后面没有了。则执行标准输入命令
		 process_standered_input();
	 else
	 {
		 do 
		 {
			 process_file(*argv);//否则对后面的文件进行处理
		 } while (*++argv!=NULL);
	 }
	
	 system("pause");
	 return 1;
 }

  

#include<stdlib.h>
#include<stdio.h>

#define TURE 1
 
void process_standered_input(void);
void process_file(char* filename);

int option_a,option_b;

/*处理命令行参数的命令*/
//类似于prog -abc name1 name2 name3的命令行输入参数命令
int main(int argc,char **argv)
 {
	 int opt;
	 while(*++argv!=NULL&&**argv=='-')//跳到下一个参数,并检查其是否为‘-’开头
	 {
		while((opt=*++*argv)!=NULL) //检查第二个参数,即一‘-’开头的后面的部分的选项
		{
			switch(opt)
			{
			case 'a':
				option_a=TURE;
				break;
			case 'b':
				option_b=TURE;
				break;
			}
		}
	 }

	 if(*argv==NULL)//若是后面没有了。则执行标准输入命令
		 process_standered_input();
	 else
	 {
		 do 
		 {
			 process_file(*argv);//否则对后面的文件进行处理
		 } while (*++argv!=NULL);
	 }
	
	 system("pause");
	 return 1;
 }