gpt4 book ai didi

c++ - 在函数调用c++中连接字符串

转载 作者:太空宇宙 更新时间:2023-11-04 15:52:41 25 4
gpt4 key购买 nike

我正在尝试创建一个记录器函数,您可以在其中传递一条消息,该消息将被记录到一个文本文件中。有时我想传递一个与我的消息连接的变量,这样我就可以做类似的事情:

logger("The variable is: " + variable);

函数定义为

void logger(std::string message);

我正在使用 Qt,所以我不知道它是否相关,但变量始终是 QString。当我尝试这个时,它会说 no candidate function for

void logger(const QString);

所以我想为什么不在需要连接的地方创建第二个函数:

void logger(std::string message);
void logger2(const QString message);

我编译的时候编译的很好

logger2("The variable is: " + variable);

但是,当我调试时,传递的消息变量是一个空字符串。我该如何让它发挥作用,这可能吗?

最佳答案

为什么不做这样的事情:

QString qs = "hello";
qs.toStdString();

就动态连接而言,我喜欢使用简单的格式化程序类:

class Formatter
{
public:
template<class Val> Formatter& operator<<(const Val& val)
{
ss_ << val;
return * this;
}
operator string () const { return ss_.str().c_str(); }
private:
std::stringstream ss_;
};

...可以这样使用:

logger(Formatter() << "The variable is: " << variable);

关于c++ - 在函数调用c++中连接字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5396790/

25 4 0
文章推荐: javascript - 无需按下鼠标即可拖动项目
文章推荐: python scrapy - 从 中提取数据 - 没有 id 标签