【发布时间】:2018-10-08 13:11:29
【问题描述】:
我要做的是获取环境变量值并在代码本身中使用它。
我想做的是(变量设置为export UTMZONE="33T"):
char UTMZone[4] = getenv("UTMZONE");
我收到以下错误:
error: array must be initialized with a brace-enclosed initializer
我认为问题在于混合类型,但我不知道我必须进行什么样的转换。
【问题讨论】:
-
数组不能作为一个整体分配。对字符数组使用
std::string -
如果你不反对我建议
std::string UTMZone = std::getenv("UTMZONE");,否则你需要strcpy或类似的 -
(致评论者:如果您有一个有效的答案,请将其作为答案放在下面,以便 Bostja 可以接受)
-
大家好,感谢您的及时回复。 @CoryKramer,问题是我在未来的函数中使用它并且我需要
const char*,因为我在编译时收到以下错误:error: cannot convert ‘std::string {aka std::basic_string<char>}’ to ‘const char*’ for argument ‘4’ to ‘void UTMtoLL(int, double, double, const char*, double&, double&)’。对于strcpy,我是否必须将其设置为cost char* env = getenv("UTMZONE"); char UTMZone[4]; strcpy(UTMZone, env)?正如我尝试过的那样,也没有工作。 -
如果您稍后需要
const char*,您可以根据需要直接说UTMZone.c_str()
标签: c++ types environment-variables