getopt.cpp

来自「MPICH是MPI的重要研究,提供了一系列的接口函数,为并行计算的实现提供了编程」· C++ 代码 · 共 168 行

CPP
168
字号
#include "GetOpt.h"#include <tchar.h>#include <stdio.h>// Function name	: GetOpt// Description	    : // Return type		: bool // Argument         : int &argc// Argument         : LPTSTR *&argv// Argument         : LPTSTR flagbool GetOpt(int &argc, LPTSTR *&argv, LPTSTR flag){	if (flag == NULL)		return false;	for (int i=0; i<argc; i++)	{		if (_tcsicmp(argv[i], flag) == 0)		{			for (int j=i; j<argc; j++)			{				argv[j] = argv[j+1];			}			argc -= 1;			return true;		}	}	return false;}// Function name	: GetOpt// Description	    : // Return type		: bool // Argument         : int &argc// Argument         : LPTSTR *&argv// Argument         : LPTSTR flag// Argument         : int *nbool GetOpt(int &argc, LPTSTR *&argv, LPTSTR flag, int *n){	if (flag == NULL)		return false;	for (int i=0; i<argc; i++)	{		if (_tcsicmp(argv[i], flag) == 0)		{			if (i+1 == argc)				return false;			*n = _ttoi(argv[i+1]);			for (int j=i; j<argc-1; j++)			{				argv[j] = argv[j+2];			}			argc -= 2;			return true;		}	}	return false;}// Function name	: GetOpt// Description	    : // Return type		: bool // Argument         : int &argc// Argument         : LPTSTR *&argv// Argument         : LPTSTR flag// Argument         : long *nbool GetOpt(int &argc, LPTSTR *&argv, LPTSTR flag, long *n){	int i;	if (GetOpt(argc, argv, flag, &i))	{		*n = (long)i;		return true;	}	return false;}// Function name	: GetOpt// Description	    : // Return type		: bool // Argument         : int &argc// Argument         : LPTSTR *&argv// Argument         : LPTSTR flag// Argument         : unsigned long *ubool GetOpt(int &argc, LPTSTR *&argv, LPTSTR flag, unsigned long *u){	if (flag == NULL)		return false;	for (int i=0; i<argc; i++)	{		if (_tcsicmp(argv[i], flag) == 0)		{			if (i+1 == argc)				return false;			*u = (unsigned long)_ttol(argv[i+1]);			for (int j=i; j<argc-1; j++)			{				argv[j] = argv[j+2];			}			argc -= 2;			return true;		}	}	return false;}// Function name	: GetOpt// Description	    : // Return type		: bool // Argument         : int &argc// Argument         : LPTSTR *&argv// Argument         : LPTSTR flag// Argument         : double *dbool GetOpt(int &argc, LPTSTR *&argv, LPTSTR flag, double *d){	if (flag == NULL)		return false;	for (int i=0; i<argc; i++)	{		if (_tcsicmp(argv[i], flag) == 0)		{			if (i+1 == argc)				return false;			*d = _tcstod(argv[i+1], NULL);			for (int j=i; j<argc-1; j++)			{				argv[j] = argv[j+2];			}			argc -= 2;			return true;		}	}	return false;}// Function name	: GetOpt// Description	    : // Return type		: bool // Argument         : int &argc// Argument         : LPTSTR *&argv// Argument         : LPTSTR flag// Argument         : LPTSTR strbool GetOpt(int &argc, LPTSTR *&argv, LPTSTR flag, LPTSTR str){	if (flag == NULL)		return false;	for (int i=0; i<argc; i++)	{		if (_tcsicmp(argv[i], flag) == 0)		{			if (i+1 == argc)				return false;			_tcscpy(str, argv[i+1]);			for (int j=i; j<argc-1; j++)			{				argv[j] = argv[j+2];			}			argc -= 2;			return true;		}	}	return false;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?