android - 将 cout 格式的数据写入 printf

标签 android c++ windows logging io

我正在为一个跨平台应用程序做日志记录,并且我试图了解在涉及 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/

相关文章:

c++ - 如何在 Visual Studio Code 中使用 g++ 编译和运行 cpp 文件?

windows - 无法在Windows 10上使用VirtualBox 5.1.8 R11374启动Docker

android - 如何在Firebase聊天应用程序中实现消息可见功能

android - Flutter Android后退按钮导航回主页

c++ - 在变量中存储多个值

如果我顺序执行 for 循环而不是嵌套执行,C 代码会遇到意外的运行时错误

windows - IOCP : how does the kernel decide to complete WSASend synchronously or asynchronously?

Android:未调用自定义按钮 OnClickListener

java - 空点异常 - ImageLoader

c++ - Visual C++ CLR 窗体项目。为函数使用单独的 c++ 文件