首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

vs命令行传参,为啥只输出第一个字符

2013-09-06 
vs命令行传参,为什么只输出第一个字符[解决办法]if (argc1) { for (int i0 i argc i++) _tprintf(_T

vs命令行传参,为什么只输出第一个字符

                                                                            
[解决办法]
if (argc>1) {
 for (int i=0; i < argc; i++)
 _tprintf(_T("argv[%d]==[%s]\n",i,argv[i]);
}

[解决办法]
vs2010新建的工程默认是UNICODE格式的;
你写代码的时候按照UNICODE的格式编码应该就不会出现上面的问题的。

或者你把工程设置成Use Multi-Byte Character Set,方法如下:
Project/工程 -> Properties在弹出对话框中选择Configuration Properties,
在右边的Project Defaults下有个Character Set:
你选择使用Use Multi-Byte Character Set即可

[解决办法]
你这个程序问题就是UNICODE与多字符集的问题, 你的工程应该是UNICODE的, 但是你输出的时候使用的是%s输出, 即按char字符串输出, 因为UNICODE中 一个字符使用两个字节表示, 并且对于字母, 是使用低字节表示, 高字节为0, 所以你以char字符串输出时, 输出一个字母, 就遇到0这个结束符了, 它就认为这个串结束了.

解决办法8楼已经给出.

热点排行