如何在C++的文本变量中添加变量值



在我的C++代码中,我正在使用python执行一些命令,如下所示:

std::string word = "Something";
std::cout << word;                         //will execute using C++
PyRun_SimpleString("import sys");          // will execute using Python

问题是如何将word传递给 Python ?

我想要这样的东西:PyRun_SimpleString("Hello %" %word);

在Python中你可以做:"Hello {}".format(word)和结果"Hello Something"

我发现了这样的东西:sprintf(str, "hello %s", word);但问题是printfsprintf会将其发送到控制台,并且不会返回 word 的值。

在C++中,您可以使用 + 运算符连接std::string对象。

PyRun_SimpleString()const char*作为输入。 std::string有一个c_str()方法,用于获取字符串的const char*

因此,您可以这样做:

std::string s = "Hello " + word;
PyRun_SimpleString(s.c_str());

或者简单地说:

PyRun_SimpleString(("Hello " + word).c_str());

或者,您可以使用std::ostringstream来构建格式化字符串:

std::ostringstream oss;
oss << "Hello " << word;
PyRun_SimpleString(oss.str().c_str());

最新更新