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怎么回事
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);试试看哈
改为
swprintf_s(buffer,MAX_PATH+1,_T("%s"),argv);
哈哈,有点晕哈,的确是这原因,我只是想看下。输入进buffer的值对不,只是程序输入是正确的,只是打印出错了。郁闷中