benarg.cpp

来自「GPU实现的MapReduce framework,对于学习并行编程和cuda平」· C++ 代码 · 共 85 行

CPP
85
字号
/*
 *System-independent library.
 *Written by Wenbin FANG (wenbin@cse.ust.hk)
 *
 *COMPILE MACROS:
 *1, __UNIX__ or __WIN32__
 *2, __TIMER__
 *3, __DEBUG__
 *4, __CUDA__
 */

#include "BenLib.h"

bool BenCheckArg(int argc, char **argvs, char *arg)
{
	int i;
	for (i = 0; i < argc; i++)
		if (strcmp(argvs[i], arg) == 0) return true;	
	return false;
}

bool BenGetArgInt(int argc, char **argvs, char *argv, int *val)
{
	int i;
	for (i = 0; i < argc-1; i++)
		if (strcmp(argvs[i], argv) == 0) 
		{ 
			*val = atoi(argvs[i+1]);
			return true;
		}
	return false;
}

bool BenGetArgFloat(int argc, char **argvs, char *argv, float *val)
{
	int i;
	for (i = 0; i < argc-1; i++)
		if (strcmp(argvs[i], argv) == 0) 
		{
			*val = atof(argvs[i+1]);
			return true;
		}
	return false;
}

bool BenGetArgStr(int argc, char **argvs, char *argv, char **val)
{
	int i;
	for (i = 0; i < argc-1; i++)
		if (strcmp(argvs[i], argv) == 0) 
		{
			*val = argvs[i+1];
			return true;
		}
	return false;
}

bool BenGetArgStrs(int argc, char **argvs, char *argv, char **val, int *len)
{
	int i, j;
	*len = 0;
	for (i = 0; i < argc-1; i++)
		if (strcmp(argvs[i], argv) == 0) 
		{
			int k = 0;
			for (j = i+1; j < argc; j++)
			{
				val[k] = argvs[j];
				(*len)++;
				k++;
			}
			return true;
		}
	return false;
}

void BenPrintUsage(char *fmt, ...)
{
	va_list ap;
    va_start(ap, fmt);
    vprintf(fmt, ap);
    va_end(ap);

	exit(0);
}

⌨️ 快捷键说明

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