gpt4 book ai didi

c++ - 为什么在解析 main() 参数时获取地址值?

转载 作者:太空狗 更新时间:2023-10-29 19:44:19 26 4
gpt4 key购买 nike

我正在使用带有以下代码的 Visual C++:

int _tmain(int argc, _TCHAR* argv[])
{

for (int i = 0; i < argc; ++i)
{
cout << argv[i] << endl;
}


getch();
return 0;
}

名为 MyProgram.exe 的程序。

然后我通过以下方式运行程序:MyProgram.exe hello world

程序应该打印:

MyProgram.exe
hello
world

但它没有,它打印了 3 行地址值:

005D1170
005D118C
005D1198

我做错了什么吗?

最佳答案

你需要使用:

std::wcout<<argv[i];

我猜你已经在编译中启用了 Unicode,当你这样做时,_TCHAR定义为 wchar_t因此你使用 std::wcout输出宽字符字符串的版本。

如果您没有在构建选项中启用 Unicode,那么

std::cout<<argv[i];

会工作得很好,因为那时 _TCHAR定义为 char并且有一个重载版本 <<需要 char 的运算符争论。

关于c++ - 为什么在解析 main() 参数时获取地址值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10409544/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com