int _tmain(int argc, _TCHAR* argv[])
{
if(argc > 1)
{
printf("Command%d\n",(argc - 1));
for (int i=1;i<argc;i++)
{
printf("%s\n",(char*)argv[i]);
}
}
else
{
printf("No command\n");
}
system("pause");
return 0;
}
在命令提示符里这样:
C:\Users\test\Documents\Visual Studio 2012\Projects\ConsoleApplication1\Debug>Co
nsoleApplication1.exe qwerty
Command1
q
请按任意键继续. . .
只输出了参数的第一个字符。。。。求解为何。。。。
其实我是想输出qwerty。。。而实际上只输出了q这一个字符。。。。这个程序我在vc6.0上是可以输出qwerty的。。。。我猜问题出在指针类型上。。。。
追答你的意思是同样的程序,VC6输出 qwerty, 但是VS2012输出 q ?
这个太奇怪了,你使用了 _TCHAR* 到 char* 的强制转换,难道你编译的是Unicode版本?否则是不需要转换的,直接可以输出。
好吧我又看了下,vc6.0是这样的int main(int argc, char* argv[]),指针类型都不同。。。。结果要怎么解决啊。。。
追答工程属性-配置属性,右边“字符集”,不要使用 Unicode
我的是VS2008,跟你可能不完全一样,你找一下吧。
好吧果然是这样,感谢~
不是指向字符变量的指针么。。。
这个真不是这个问题。。。
追答你没试过怎么知道不对?
追问试过了啊,结果什么都没输出了
追答是编码问题 不要挣扎了
#include "stdafx.h"好吧。。。感谢~还是用vc++6.0去。。。