新手提问:写了一个小的测试程序,却始终无法正确显示,望各位大侠指导;
程序如下:
void main(char *argv[])
{
char guid[] = "{6DC04A5D-F920-4248-82B0-510662B01A16}";
char mguid[38];
memcpy(mguid, *argv, 39);
printf("%s\n",mguid);
}
执行a "{6DC04A5D-F920-4248-82B0-510662B01A16}"
不能输出
但是:
void main(char *argv[])
{
char guid[] = "{6DC04A5D-F920-4248-82B0-510662B01A16}";
char mguid[38];
memcpy(mguid, guid, 39);
printf("%s\n",mguid);
}
执行a "{6DC04A5D-F920-4248-82B0-510662B01A16}"
却是可以正确输出
望各位指导指针如何使用,谢谢!

解决方案 »

  1.   


    char guid[] = "{6DC04A5D-F920-4248-82B0-510662B01A16}"; 
    char mguid[38]; 
    memcpy(mguid, *argv, 39); 
    printf("%s\n",mguid); 你这是输出进程的命令行,当然不能输出"{6DC04A5D-F920-4248-82B0-510662B01A16}",它输出的是你的程序的全路径char guid[] = "{6DC04A5D-F920-4248-82B0-510662B01A16}"; 
    char mguid[38]; 
    memcpy(mguid, guid, 39); 
    printf("%s\n",mguid); 这才是把"{6DC04A5D-F920-4248-82B0-510662B01A16}",输出来
      

  2.   

    首先,char mguid[38]; ,memcpy就不要用39了
    其次,argv[0]是程序名字,也就是a.exe,argv[1]才是你的第一个参数
      

  3.   

    我是想把"{6DC04A5D-F920-4248-82B0-510662B01A16}"作为参数传递给main函数中的一个变量
    void main(char *argv[]) 

    char guid[] = "{6DC04A5D-F920-4248-82B0-510662B01A16}"; 
    char mguid[38]; 
    memcpy(mguid, *argv, 39); 
    printf("%s\n",mguid); 

    执行a.exe "{6DC04A5D-F920-4248-82B0-510662B01A16}"为什么不能输出呢?
    该如何编写才能把"{6DC04A5D-F920-4248-82B0-510662B01A16}"这段字符作为参数传递给变量mguid呢?
    谢谢
      

  4.   

    是说
    void main(char *argv[]) 

    char guid[] = "{6DC04A5D-F920-4248-82B0-510662B01A16}"; 
    char mguid[38]; 
    memcpy(mguid, argv[1], 39); 
    printf("%s\n",mguid); 

    执行a.exe "{6DC04A5D-F920-4248-82B0-510662B01A16}"
    可是还是不行
      

  5.   

    你是想把"{6DC04A5D-F920-4248-82B0-510662B01A16}"字符串加入到参数argv[]中??
      

  6.   

    是啊
    然后传递给变量mguid
      

  7.   

    问题解决
    void main(int argc,char *argv[])中int argc不能少