xyjzsh

重载标准输出符号operator<<

CString是我自己定义的一个类
为了实现:
CString str("123abvc");
cout<<str<<endl;


声明:
 ostream& operator<<(ostream& os,const CString& str);
实现:

ostream& operator<<(ostream& os,const CString& str)
{
 long multiBytes = WideCharToMultiByte(CP_ACP,0,str._pData,-1,NULL,0,NULL,NULL);//获得将宽字节转换成多自己时,所需要的字节个数,注意蓝色部分
 char *lpMultiBytes = new char[multiBytes+10];//分配多字节时所需要的内存
 memset(lpMultiBytes,0,multiBytes+10);

 WideCharToMultiByte(CP_ACP,0,str._pData,-1,lpMultiBytes,multiBytes+10,NULL,NULL);//调用win32api函数将宽字节的表示转换成为多字节的表示,注意蓝色部分

 os<<lpMultiBytes;

 return os;//注意返回值
}

posted on 2011-08-10 13:43 呆人 阅读(504) 评论(0)  编辑 收藏 引用 所属分类: 算法


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2012年2月>
2930311234
567891011
12131415161718
19202122232425
26272829123
45678910

导航

统计

常用链接

留言簿(1)

随笔分类

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜