我从文件中读取数据,并且想在函数中使用其中的值。这是一个自定义函数,我正在为 Creo Parametric 编写 TOOLKIT。
嗯,该函数需要一个“xrstring”,但我有一个 std::string。
如何将一种转换为另一种?
我尝试编写 xrstring test_var = xrstring(std_var);
而且它不起作用。
//definition of xrstring
typedef const char *xrstring;
#define xstringuninit ((xrstring) 2)
#define xstringnil ((const char *) 1)
#define xwstringnil ((const wchar_t *) 1)
#define xwstringuninit ((const wchar_t *) 2)
//definition of pfcCreateStringParamValue
pfcParamValue_ptr pfcCreateStringParamValue (xrstring Value);
错误 C2664:“pfcParamValue_ptr pfcCreateStringParamValue(xrstring)”:无法将参数 1 从“std::string”转换为“xrstring”
最佳答案
您所说的 xrstring
是 const char *
或 C 样式字符串。
std::string
附带了一个方便的函数,可以将 std::string
转换为 C 风格字符串 - std::string::c_str( )
因此,这是做你想做的事情的正确方法:
xrstring test_var = std_var.c_str();
此外,不存在从 const char *
到 std::string
的直接转换。标准库字符串不仅仅是一个指向字符的指针。它还包含其他信息,例如字符串长度。
如果您想进行像 xrstring test_var = xrstring(std_var);
这样的转换,我个人建议您将 xstring
声明为类,并创建一个合适的构造函数用于转换。
关于c++ - 如何将 std::string 转换为不同类别的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58628349/