EVC中写文件奇怪的乱码,每两个字符之间都多了个00(空格)(在VC6下正常,在EVC下出错)
在EVC下用CFile写一段文本文件,写出来的却是奇怪的格式的。代码如下:
CFile file;
CString cstrTemp;
if(file.Open(sTmp+"new.txt",CFile::modeCreate | CFile::modeReadWrite|CFile::modeNoTruncate))
{
cstrTemp.Format(_T("Hockey is best!"));
file.Seek(0,CFile::end);
file.Write(cstrTemp, cstrTemp.GetLength());
file.Flush();
file.Close();
}
上面这段代码在VC6。0下运行结果正常,会创建一个new.txt文件,并写入文本。
但上面这段代码在EVC下就莫明其妙了,上面这段代码只会写入一半的字符,也就是说只会写入Hockey i这几个,而且每两个字符之间都会多出一个字节00,结果写出来的为H o c k e y i。每两个字符之间都会多出一个空格来,这个时候我把
file.Write(cstrTemp, cstrTemp.GetLength());这句改成:
file.Write(cstrTemp, cstrTemp.GetLength()*2);就能把要写的字符全部写完,只是每两个字符之间多了个空格,请问这是怎么回事?该如何解决?
(new.txt如果是用记事本看显示是正常的,只有用ultraEdit才看的出中间多了个空格了)