char *(64位(Windows 7))

时间:2010-11-10 18:38:29

标签: c++

假设我有代码:

// My.cpp
#include <iostream>

int main( int argc, char ** argv ) 
{
   if ( argc > 1 )
      std::cout << argv[ 1 ] << std::endl;
}

(我使用MVSC ++ 2008)

当我在cmd.exe中运行我的程序时:

My.exe argument

我得到了这个输出:

a r g u m e n t 

为什么?????

2 个答案:

答案 0 :(得分:5)

可能是字符代码问题。尝试用“\ n”替换“std :: endl”并查看。另外,你编译为Unicode吗?

答案 1 :(得分:1)

看起来您正在使用Unicode字符集选项进行编译。转到项目属性,然后在常规页面下更改为“使用多字节字符集”。或者,如果要使用UTF-16,请将main()功能更改为:

int wmain( int argc, wchar_t **argv )

另外,使用std::wcout代替std::cout来打印参数。