我正在学习C ++。我需要打印特定环境变量的环境值。我找到了检查是否定义了环境变量的示例。但是如何打印环境值。
GetEnvironmentVariable(_T("path"), Buffer, _MAX_PATH);
返回DWORD
并且它正在打印一些整数,但我需要打印“C:\ programfiles \ windows”之类的确切值。
在C#中我可以使用
执行此操作string abc = Environment.GetEnvironmentVariable("PATH");
cout<<a;
如何在VC ++中执行此操作。感谢
答案 0 :(得分:1)
_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);