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

时间:2019-04-24 17:02:22

标签: c++ c++11 c++14

在我的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的值。

1 个答案:

答案 0 :(得分:3)

在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());