发现CString一个有关问题

发现CString一个问题
C/C++ code

CString csText,csLine;
csLine="123";//长度为3
fread(fp,csLine.GetBuffer(),5);...//各种长度大于3的赋值(别用等号操作符或format)
csText+=csLine;//这句内部实现是Append( strSrc.GetString(), strSrc.GetLength() );

我想可能是不用等号操作符GetLength那个长度也就没有自动更新吧
如何将初始的长度3,更新为实际长度5



------解决方案--------------------
可以用GetBuffer为CString预分配空间,赋值后用ReleaseBuffer释放多余空间
------解决方案--------------------
CString这类自己管理内存的封装类,不应该直接对内存操作,它们管理的不仅是内存的地址还有内存的大小,这些对于使用者应该是不可见的
如果你直接写内存,那么很有可能你写的就是没有分配给你的内存
------解决方案--------------------
fread(fp,csLine.GetBuffer(),5);...//各种长度大于3的赋值(别用等号操作符或format)
改为
C/C++ code

fread(fp,csLine.GetBuffer(6),5);
csLine.ReleaseBuffer();