从文本文件中,我读了几个值,如
s_no
如何将它们附加到const char数组中,例如
const float vLowCut = cfg.get<float>("LowCut");
const float vLowCut1 = cfg.get<float>("LowCut1");
...
当然上面的行不起作用,只是想展示我想拥有的东西。 谢谢
答案 0 :(得分:6)
这里使用const char *
会很困难,因为你需要创建一个指向它的数组。一个C ++习语会更方便:
std::string CutList[2] = {
"value" + std::to_string(vLowCut),
"value2" + std::to_string(vLowCut2)
};
答案 1 :(得分:0)
使用{{3}}这样的功能:
std::string CutList = {"value: "+ std::to_string(vLowCut), " value2: " + std::to_string(vLowCut2))
答案 2 :(得分:0)
您是否考虑过使用std::string
?您可以使用std::to_string
:
std::string CutList[2] = {"value" + std::to_string(vLowCut),
"value2" + std::to_string(vLowCut2));
如果你想使用显式格式说明符,你可以使用std :: stringstream,就像这样:
#include <iostream>
#include <string>
#include <iomanip>
auto my_float_to_string =
[](float f){ std::stringstream ss;
ss << std::setprecision(3) << f;
return ss.str(); };
std::string CutList[2] = {"value" + my_float_to_string(vLowCut),
"value2" + my_float_to_string(vLowCut2));
您可以使用c_str()
将其转换回const char*
:
strstr(CutList[0].c_str());
但是不要将c_str()
用作永久存储,一旦std::string
对象被销毁,它将被销毁。即:
void f(int a) {
const char* s = nullptr;
if(a == 10) {
s = std::string("aaaa").c_str(); }
// Here s may point to invalid data because
// corresponding std::string object has been destroyed
}