C语言中的命令行参数

C语言中的命令行参数,c,C,我对C编程非常陌生。我陷入了一个非常琐碎的问题。我有一个C程序,通过一个文本文件传递一个变量的值。基于此变量,我传递一个条件,例如,如果bDrw==true,则继续,否则不继续。现在我希望我的程序从命令行而不是文本文件中获取条件。i、 e.当我在命令行上键入Drw时,程序应使bDrw==true 我该怎么做? 我通过以下方式提供其余的论述: int main(int argc, char *argv[]) { bool bArgs = false; bool bConf = fals

我对C编程非常陌生。我陷入了一个非常琐碎的问题。我有一个C程序,通过一个文本文件传递一个变量的值。基于此变量,我传递一个条件,例如,如果bDrw==true,则继续,否则不继续。现在我希望我的程序从命令行而不是文本文件中获取条件。i、 e.当我在命令行上键入Drw时,程序应使bDrw==true

我该怎么做? 我通过以下方式提供其余的论述:

int main(int argc, char *argv[])
{
bool    bArgs = false;
bool    bConf = false;
bool    bUgMgr = false;
bool    bFile = false;
bool    bErp  = false;

char    acAttrFile[(MAX_FSPEC_SIZE*2) + 1 ]="";
char    acPartFile[(MAX_FSPEC_SIZE*2) + 1 ]="";
char    acConfFile[(MAX_FSPEC_SIZE*2) + 1 ]="";
char    acSingleItem[UF_UGMGR_PARTNO_SIZE + 1]="";
char    acItemRevSeed[UF_UGMGR_PARTNO_SIZE + UF_UGMGR_PARTREV_SIZE + 1]="";
char    acUser[MAX_FSPEC_SIZE + 1]="";
char    acPass[MAX_FSPEC_SIZE + 1]="";
char    acLogDir[(MAX_FSPEC_SIZE*2) + 1]="";
char    acNatDir[(MAX_FSPEC_SIZE*2) + 1]="";
char    msg[MAX_LINE_SIZE + 1]="";

bArgs = getArgs(argc,argv,acAttrFile,acPartFile,acConfFile,acSingleItem,acItemRevSeed,acUser,acPass,acLogDir,acNatDir,&bUgMgr,&bErp);
假设c99:

#include <string.h>
int main(int argc, void **argv)
{
    bool bDrw = false;
    if (argc > 1  && strcmp(argv[1], "bDrw") == 0)
        bDrw = true;
    /* take it from here.... */
    return 0;
}

尝试此操作,假设您通过键入程序名并后跟Drw来运行程序:


请看本教程:


对于复杂的参数解析,您应该考虑库。

然而,在这种情况下:

#include <stdio.h>
#include <string.h>

int main( int argc, char** argv ) {
    unsigned short int bDrw = 0;

    if ( argc == 2 && strcmp( argv[1], "Drw" ) == 0 ) {
        bDrw = 1;
    }

    printf( "bDrw = %d\n", bDrw );

    return 0;
}

您是否尝试过从argv中提取它?您当前的代码是什么样子的?您的主要函数是什么样子的?您不应该也包括stdbool.h吗?实际上,我正在这里传递所有的参数:getArgsargc、argv、acAttrFile、acPartFile、aconfile、acSingleItem、acItemRevSeed、acUser、acPass、acLogDir、acNatDir、&bUgMgr、&bErp;好的,那么你只需要按照别人的建议去做,这取决于你想怎么做——要么把代码放在main中,在你传递的时候传递一个新的bDrw变量,比如acAttrFile,要么在那里做ifbDrw检查,然后决定是否继续。
#include <stdio.h>
#include <string.h>

int main( int argc, char** argv ) {
    unsigned short int bDrw = 0;

    if ( argc == 2 && strcmp( argv[1], "Drw" ) == 0 ) {
        bDrw = 1;
    }

    printf( "bDrw = %d\n", bDrw );

    return 0;
}