第一步,继承std::streambuf

#include <iostream>#include <streambuf>class MyStreamBuf : public std::streambuf{enum{BUFFER_SIZE = 255,};public:MyStreamBuf(){buffer_[BUFFER_SIZE] = '\0';setp(buffer_, buffer_ + BUFFER_SIZE - 1);}~MyStreamBuf(){sync();}protected:virtual int_type overflow(int_type c){if (c != EOF){*pptr() = c;pbump(1);}flush_buffer();return c;}virtual int sync(){flush_buffer();return 0;}private:int flush_buffer(){int len = int(pptr() - pbase());if (len <= 0)return 0;if (len <= BUFFER_SIZE)buffer_[len] = '\0';#ifdef ANDROID  android_LogPriority t = ANDROID_LOG_INFO;__android_log_write(t, "mylog", buffer_);#else  printf("%s", buffer_);#endif  pbump(-len);return len;}private:char buffer_[BUFFER_SIZE + 1];};

第二步,创建MyStreamBuf对象,并指定给std::cout

MyStreamBuf g_MyStreamBuf;std::cout.rdbuf(&g_MyStreamBuf);//NOTE: std::endl会立即调用sync方法将缓冲区字符写入log,并不只是换行用std::cout << "hello " << 123 << std::endl;std::cout << "pi = " << 3.14 << std::endl;

这样,就可以是Eclipse的LogCat查看std::cout输出了。

更多相关文章

  1. android非法字符的判定、表情符号的判定
  2. Android将获取到文件的uri转换为字符串的路径
  3. android XML文件常用字符转义
  4. Android 创建一个包含星期的格式字符串
  5. Android源码快速查找文件、搜索字符串和编译
  6. android上传图片以及POST字符串
  7. 通过OpenGL ES混合模式缩放视频缓冲区-Android 4游戏编程高级篇
  8. android调用webservice方法,参数和返回值都用字符串
  9. android 发送短信 判断号码规则 判断字符数70

随机推荐

  1. 听说”双11”是这么解决线上bug的
  2. Android尺寸单位
  3. Android(安卓)获取屏幕尺寸与密度
  4. Android(安卓)Studio 3.6 特征大揭秘
  5. android 属性大全
  6. android深度搜索学习笔记四(硬件抽像hal第
  7. 从Android发展看Meego
  8. Android(安卓)设置DrawableRight和Drawab
  9. Android高手进阶教程(二)之 ----Android(
  10. Unity3d和Android之间互相调用