int _tmain(int argc, _TCHAR* argv[])
{
if(argc>1)
{
WCHAR buffer[MAX_PATH+1];
swprintf_s(buffer,MAX_PATH+1,_T("%s"),argv[1]);
printf("\r\n===%s\r\n ===>%s",buffer,argv[1]);
         }
return 0;假设这个程序的名字是 a.exe 我这样运行 a.exe abcdef 
照理说吧,打印出来的应该是
===abcdef
 ===>abcdef
但实际上只把第一个字符打印出来了===a
 ===>a怎么回事

解决方案 »

  1.   

    swprintf_s(buffer,MAX_PATH+1,_T("%s"),argv[1]);
            printf("\r\n===%s\r\n ===>%s",buffer,argv[1]);换成
    swprintf_s(buffer,MAX_PATH+1,_T("%s"),argv);
            printf("\r\n===%s\r\n ===>%s",buffer,argv);试试看哈
      

  2.   

        swprintf_s(buffer,MAX_PATH+1,_T("%s"),argv[1]);
    改为
        swprintf_s(buffer,MAX_PATH+1,_T("%s"),argv);
      

  3.   

    字符编码问题printf()函数换成_tprintf
      

  4.   


    哈哈,有点晕哈,的确是这原因,我只是想看下。输入进buffer的值对不,只是程序输入是正确的,只是打印出错了。郁闷中