C++ 控制台 接收参数问题
IDE是 VS2012
想写个控制台的exe 接收外来参数 来执行程序
比如:myConsole.exe abcdefg
测试代码如下:
int _tmain(int argc, char* argv[])
{
for(int i=0; i<argc; i++)
{
printf("%s\n", argv[i]);
}
return 0;
}
同样这一段,用Dev C++来做,能正常的输出 myConsole.exe 和 abcdefg
但是用VS来做,输出的是m 和 a
之前用的是VS2010来做,也是遇到这个问题,然后换了2012,问题竟然依旧。。。
直接取了argv[1]来输出,得到a,逐个输出argv[1]的成员,如argv[1][0]、argv[1][1]、argv[1][2]、argv[1][3]...
得到 a b ,转成ascii得:97,0,98,0。 发觉a和b之间本来应该是连续的,现在被一个NULL分隔了,取argv[1]的size,无论参数长度多少都是4,一般的char数组取size都是字符串的长度。
想不粗来了... 求助...
[解决办法]
我打开 久违的2010 看了一下, 改变和2008不大。
这样弄: 右键 你的工程项目 -》 属性 property => 配置属性 configure property => 一般 =》 字符设置 character set => 使用unicode 字符集 use unicode character set 改变成为 未设置 no set。
我不知道你的是否为 英文版。。。 反正我的是。。
我主要是由于没办法添加全局的链接库, 只能针对每个项目添加自己的额外链接库。。 我嫌太麻烦了,所以一直不用。。