注册 登录
编程论坛 C++教室

命令行参数如何传递

chaw899 发布于 2019-07-11 08:56, 1416 次点击
int main(int argc,char *argv[])
{
    if ( argc < 4 )
    {
        printf("usage: %s %s\n", argv[0], "-e|d infile outfile");
        exit(1);
    }
    else
    {   
        if ( (strcmp(argv[1]),"-e") )
       {
          printf("%s\n",argv[1]);
          printf("nihao.\n");
//          encoding(argv[2],argv[3]);
          exit(2);
       }
          if ( (strcmp(argv[1]),"-d") )
       {
          printf("%s\n",argv[1]);
          printf("wohao.\n");
 
//          decoding(argv[2],argv[3]);
          exit(3);  
       }
    }
}

下面的代码执行后都是打印出nihao,为啥wohao打印不出来呢?

base64 -e minase.mp3 ulg.txt
-e
nihao.

base64 -d minase.mp3 ulg.txt
-d
nihao.



1 回复
#2
rjsp2019-07-11 10:36
strcmp(argv[1]) 等能编译通过吗?

程序代码:
#include <stdio.h>
#include <string.h>

int main( int argc, char* argv[] )
{
    if( argc < 4 )
    {
        printf( "usage: %s %s\n", argv[0], "-e|d infile outfile" );
        return 1;
    }

    if( strcmp(argv[1],"-e") == 0 )
    {
        printf( "%s\n",argv[1] );
        printf( "nihao.\n" );
        return 2;
    }

    if ( strcmp(argv[1],"-d") == 0 )
    {
        printf( "%s\n", argv[1] );
        printf( "wohao.\n" );
        return 3;
    }
}

运行参数:-d minase.mp3 ulg.txt
输出:wohao.
1