我在读一个unicode类型的文本文件的时候。
CFile cf;
cf.open(filename,CFile::modeRead);
cf.seek(2,CFile::begin);
CString buf;
int n=cf.Getlength();
cf.read(buf.GetBuffer(n-2),n-2);
cf.close();这么一读出来的东西,为什么多那么多字节呢?
然后后面就是一些正方形的字符,怎么回事呢?
int n=cf.GetLength();
文件的长度不就是字节数吗?
==================================================
还有同样的问题出现在写文件的过程中。
buf已经赋值了! CFile cf;
cf.Open(filepath,CFile::modeCreate|CFile::modeWrite);
int n=buf.GetLength();
WORD wFlag=0xFEFF;
cf.Write(&wFlag,2);
cf.Write(buf.GetBuffer(n),n);
buf.ReleaseBuffer();
cf.Close();
这个也是要不就是少写了几个字符,要不就是多出了几个正方形的字符,
这个到底是怎么回事呢?
有没有人碰到过这种问题呢?
谢谢了!
CFile cf;
cf.open(filename,CFile::modeRead);
cf.seek(2,CFile::begin);
CString buf;
int n=cf.Getlength();
cf.read(buf.GetBuffer(n-2),n-2);
cf.close();这么一读出来的东西,为什么多那么多字节呢?
然后后面就是一些正方形的字符,怎么回事呢?
int n=cf.GetLength();
文件的长度不就是字节数吗?
==================================================
还有同样的问题出现在写文件的过程中。
buf已经赋值了! CFile cf;
cf.Open(filepath,CFile::modeCreate|CFile::modeWrite);
int n=buf.GetLength();
WORD wFlag=0xFEFF;
cf.Write(&wFlag,2);
cf.Write(buf.GetBuffer(n),n);
buf.ReleaseBuffer();
cf.Close();
这个也是要不就是少写了几个字符,要不就是多出了几个正方形的字符,
这个到底是怎么回事呢?
有没有人碰到过这种问题呢?
谢谢了!
解决方案 »
- 基于对话框的MFC应用程序,如何实现点击一个按钮后的一段时间内用户点击对话框上的任何东西都没有反应(除过关闭和我设置的exit按钮)?
- 关于指针和内存泄漏,我有点不太明白
- CListCtrl改变某项Check状态的时候如何激发一个消息?
- 超奇怪的switch case语句中的错误!!!!
- 关于循环显示的问题:
- 讨论一下未来软件发展的方向问题?
- 大家看看我的代码,用星号括起来的部分是错误?本人一定给分?快快帮忙啊?
- STL低级问题,vector的iterator怎样转换成它所指向元素的指针?(VC6)
- 如何响应网页里控件?急在线等!
- 怎样让两个TOOBAR一创建*****就首尾*****连在一起,摆到TOP位置!只设置TOP属性不可以的!它们会排成两行!
- 通过遍历获取每个element,但是我如何才能知道可在htmlview中显示出来的元素位置?
- 定制界面的两个个问题
多出来的字符是因为整个字符串没有结束字符,所以后面是乱七八糟的东西
read(char[n-1],n-1);
char[n]='\0'
另外,读文件我没有用过CString的对象,用char数组会更方便一些