我正在学习C++。我需要打印特定环境变量的环境值。我正在寻找示例来检查是否定义了环境变量。但是如何打印环境价值。
GetEnvironmentVariable(_T("path"), Buffer, _MAX_PATH);
返回DWORD
,它正在打印一些整数,但我需要打印确切的值,类似于"C:\programfiles\windows“。
在C#中,我可以使用
string abc = Environment.GetEnvironmentVariable("PATH");
cout<<a;
如何在VC++中做到这一点。谢谢
发布于 2014-03-19 07:27:44
_MAX_PATH
可能不足以保存整个值。您应该首先使用nullptr和size 0调用该方法,以获得所需的大小,然后分配一个该大小的缓冲区。
auto size = GetEnvironmentVariableA("PATH", nullptr, 0);
std::string Buffer(size, 0);
GetEnvironmentVariableA("PATH", &Buffer[0], size);
std::cout << Buffer << std::endl;
更新:用于预C++11编译器:
DWORD size = GetEnvironmentVariableA("PATH", NULL, 0);
https://stackoverflow.com/questions/22498931
复制相似问题