c++ 文件操作 急急急!!

来源:百度知道 编辑:UC知道 时间:2024/05/31 12:06:18
我使用CFILE类对文件进行操作 为什么我打开文件,比如原文件内容是12345 打开后却是12345 葺葺Q 后面多出些乱码.我知道是对文件尾操作出现了问题 但是改怎么解决呢?
char *data;
CFile *file;
DWORD flen;
file = new CFile;
file->Open(m_ED, CFile::shareDenyNone|CFile::modeReadWrite);

flen = file->GetLength();
data = new char[(int)flen];

file->SeekToBegin();
file->Read(data, flen);
这个是我打开文件的操作 请高手帮忙 怎样忽略文件尾符号\0?

你的字符串最好初始化一下就不会有后面的乱码了,像这样改:
#include"string.h"
......
char *data;
CFile *file;
DWORD flen;
file = new CFile;
file->Open(m_ED, CFile::shareDenyNone|CFile::modeReadWrite);

flen = file->GetLength();
data = new char[(int)flen];
strset(data,0);//将缓冲区初始化为全0

file->SeekToBegin();
file->Read(data, flen);

你的data只分配了和文件长度相等的空间,那字符串结束符往哪放呢,要分配flen+1的空间啊.
<br>如果不用字符串结束符,好歹你就再声明一个变量,用来表示字符数组长度吧.输出时一个字符一个字符的输出,但C++自带的输出函数可全都是要用\0来做判断的.