作者:sdlzq | 来源:互联网 | 2022-12-02 18:47
我想要做的是获取环境变量值并在代码本身中使用它.
我想要做的是(变量设置为export UTMZOnE="33T"
):
char UTMZone[4] = getenv("UTMZONE");
有了这个我收到以下错误:
error: array must be initialized with a brace-enclosed initializer
我认为问题在于混合类型,但我不知道我必须进行什么样的转换.
1> NathanOliver..:
getenv
返回一个char*
.没有办法char[N]
从a 初始化a char*
.您需要做的是捕获指针,然后将字符串复制到数组中
char UTMZone[4];
char* ret = getenv("UTMZONE");
if (ret)
strncpy(UTMZone, ret, 4);
else
// abort
也就是说,如果你可以使用a std::string
,那可以从a构造char*
.运用
char* ret = getenv("UTMZONE");
if (ret)
std::string UTMZOne= ret;
else
// abort
为您提供一个填充了环境变量的字符串.如果你需要将它传递给一个东西,需要一个char*
或const char*
然后你可以使用data()
或c_str()
分别成员函数.那看起来像
function_that_needs_char_star(UTMZone.data());
function_that_needs_const_char_star(UTMZone.c_str());