关于CFile读取文件的问题GetLength(),,,万恶的CFile不如|CStdioFile
CFile f;
CString text;
filename="C:/sell.txt";
f.Open(filename,CFile::modeReadWrite);
f.Read(text.GetBuffer(),f.GetLength());
f.Close();
如果要读取整个文件,注意在text.GetBuffer(),GetBuffer里不要自己设置长度参数f.GetLength());否则会读入多余的字符。
-----------------------------------------------------------
今天遇到的问题,以上代码存在问题。
GetBuffer(),
据说get了就要release两个函数是对应的。也有人说如果是局部变量那释放不释放无所谓。
但是实际情况是如果不释放会遇到问题,如果sell.txt文件较小还好我开始存的大概是8个汉字,然后存大概10几个汉字的时候问题出现了,在函数外面调用此函数后申请其他CString并复制,结果提示内存不足。。。
于是我在getbuffer后releasebuffer()参数默认为-1,结果程序调试中断了,然后我改成参数为0,结果是数据也没了,当然错误是消失了。。。。
也许是我没设置长度的后遗症。。。没空理会了直接改用CStdioFile,ReadString。不过这个函数是读取一行,即遇到回车结束。
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: js数组的截取与排序
- 下一篇: 整理ES6中常用的几个数组API