假设我有代码:
// 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
为什么?????
答案 0 :(得分:5)
可能是字符代码问题。尝试用“\ n”替换“std :: endl”并查看。另外,你编译为Unicode吗?
答案 1 :(得分:1)
看起来您正在使用Unicode字符集选项进行编译。转到项目属性,然后在常规页面下更改为“使用多字节字符集”。或者,如果要使用UTF-16,请将main()
功能更改为:
int wmain( int argc, wchar_t **argv )
另外,使用std::wcout
代替std::cout
来打印参数。