在我的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);
但问题是printf
或sprintf
会将其发送到控制台,并且不会返回 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());