1. 程式人生 > >C語言-解析命令列引數

C語言-解析命令列引數

#include <stdio.h>
#include<unistd.h>

/*
函式說明 :
	int getopt(int argc,char * const argv[ ],const char * optstring);)
	用來分析命令列引數。引數argc和argv分別代表引數個數和內容,跟main()函式的命令列引數是一樣的。
	引數 optstring為選項字串, 告知 getopt()可以處理哪個選項以及哪個選項需要引數,如果選項字串裡的字母后接著冒號“:”,
	則表示還有相關的引數,全域變數optarg 即會指向此額外引數。如果在處理期間遇到了不符合optstring指定的其他選項getopt()將顯示一個錯誤訊息,
	並將全域變數optarg設為 “?”字元,如果不希望getopt()打印出錯資訊,則只要將全域變數opterr設為0即可。
*/
int main(int argc,char *argv[])
{
	int opt;
	opterr =0 ;//不輸出錯誤

	while ((opt = getopt (argc, argv, "A:B:C:")) != EOF)
   	 	switch (opt)
		{
			case 'A': printf("\033[40;31m *parameter a is:%s* \033[0m \n",optarg); 
				break;
			case 'B': printf("parameter B is:%s\n",optarg); 
				break;
			case 'C': printf("parameter C is:%s\n",optarg); 
				break;
			default:
				printf("other option is wrong\n");
		}
	return 0;
}