我正在为一个跨平台应用程序做日志记录,并且我试图了解在涉及 Android 时我应该怎么做,其中 C++ 中的默认日志记录系统使用 printf 格式的函数。但是我想使用 '<<' 运算符来轻松记录,例如
std::string myName = Johan;
int myID = 1;
mLogger << "Hello my name is: " << myName << " and my ID is: " << myID;
现在如何将其转换为 printf 友好格式?有没有简单的方法可以做到这一点?
编辑:mLogger 是一个输出流。我要重载“<<”运算符并尝试以某种方式从其输入构建格式正确的字符串以用于 printf。是不是更清楚了?
最佳答案
您可以使用字符串流来格式化消息:
std::ostringstream msg;
std::string myName = "Johan";
int myID = 1;
msg << "Hello my name is " << myName << " and my ID is: " << myId;
然后将字符串传递给 printf
就相当简单了:
printf("%s", msg.str().c_str());
关于android - 将 cout 格式的数据写入 printf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9384083/