您的位置:首页 > 其它

关于CFile读取文件的问题GetLength(),,,万恶的CFile不如|CStdioFile

2010-07-05 18:53 411 查看
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。不过这个函数是读取一行,即遇到回车结束。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: